摘要:對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組。類型類型來自使用操作符和構造函數同樣返回表示日期的毫秒數,但它與在構建時使用不同的信息。類型類型,與布爾值對應的引用類型。
引用類型 Object類型
兩種創建Object實例的對象
使用new操作符后跟Object構造函數
var person=new Object(); person.name="Nicholas"; person.age=29;
對象字面量表示法
var person={ name:"Nicholas", age:29 }Array類型
創建數組的基本方式有兩種
使用Array構造函數,new操作符可以省略
var colors=new Array(); var colors=Array(3);
數組字面量表示法
var colors=["red","blue","green"];//創建一個包含3個字符串的數組 var names=[];//創建一個空數組 var values=[1,2,];//創建一個包含2或3項的數組,謹慎操作 var options=[,,,,,];//創建一個包含5或6項的數組,謹慎操作
數組的length不是只讀的,可以通過設置這個屬性,可以從數組的末尾移除項或向數組或向數組中添加新項
var colors=["red","blue","green"];//創建一個包含3個字符串的數組 colors.length=2; alert(colors[2]);//undefined var colors=["red","blue","green"]; colors.length=4; alert(colors[3]);//undefined
可以使用instanceof確定某個對象是否是數組,但是如果存在兩個以上不同的全局執行環境,從而存在兩個以上不同版本的Array構造函數,從其中一個框架向另外一個框架傳入數組,那么傳入的數組與在第二框架中原生創建的數組分別具有各自不同的構造函數。
Array.isArray()方法解決instanceof方法的問題
if(Array.isArray(value)){ //對數組執行默寫操作 }
push()接收任意數量的參數,把它們逐個添加到數組末尾,并返回修改后數組的長度。
pop()從數組末尾移除最后一項,減少數組的length值,然后返回移除的項。
shift()從數組開頭移除一項,減少數組的length值,然后返回移除的項。
unshift()在數組前端添加人一個項,并返回新數組的長度。
reverse()反轉數組項的順序。返回值是經過排序之后的值。
sort()排序,可以接收一個比較函數作為參數。返回值是經過排序之后的值。
concat()將一個或多個數組添加到結果數組中,如果傳遞的值不是數組,將會被簡單地添加到結果數組的末尾。
var colors=["red","green","blue"]; var colors2=colors.concat("yellow",["black","brown"]); alert(colors);//red,green,blue alert(colors2);//red,green,yellow,black,brown
slice()基于當前數組中的一個或者多個創建一個新數組,接收一個或者兩個參數指定位置開始到當前數組末尾的所有項,不影響原始數組。
var colors=["red","green","blue","yellow","purple"]; var colors2=colors.slice(1); var colors3=colors.slice(1,4); alert(colors2);//green,blue,yellow,purple alert(colors3);//green,blue,yellow
splice()向數組中部插入項。指定兩個參數,刪除項。指定三個參數,插入項。指定三個參數,替換項。
var colors=["red","green","blue"]; var removed=colors.splice(0,1);//刪除第一項 alert(colors);//green,blue alert(removed);//red返回的數組中只包含一項 removed=colors.splice(1,0,"yellow","orange");//從位置1開始插入兩項 alert(colors);//green,yellow,orange,blue alert(removed);//返回的是一個空數組 removed=colors.splice(1,1,"red","purple");//插入兩項,刪除一項 alert(colors);//green,red,purple,orange,blue alert(removed);//yellow,返回的數組中只包含一項
indexOf()從數組的開頭向后查找,lastIndexOf()從數組的末尾開始向前查找。
var numbers=[1,2,3,4,5,4,3,2,1]; alert(number.indexOf(4));//3 alert(number.lastIndexOf(4));//5 alert(number.indexOf(4,4));//5 alert(number.lastIndexOf(4,4));//3 var person={name:"Nicholas"}; var people=[{name:"Nicholas"}]; var morePeople=[person]; alert(people.indexOf(person));//-1 alert(morePeople.indexOf(person));//0
every()對數組中的每一項運行給定函數,如果該函數對每一項都返回true,則返回true
filter()對數組中的每一項運行給定函數,返回該函數會返回true的項組成的數組
forEach()對數組中的每一項運行給定函數,沒有返回值。
map()對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組。
some()對數組中的每一項給定函數,如果該函數對任一項返回true,則返回true。
reduce()從數組的第一項開始,逐個遍歷到最后。
reduceRight()從數組的最后一項開始,向前遍歷到第一項。
var value=[1,2,3,4,5]; var sum=value.reduce(function(prev,cur,index,array){ return prev+cur; }); alert(sum);//15 var value=[1,2,3,4,5]; var sum=value.reduceRight(function(prev,cur,index,array){ return prev+cur; }); alert(sum);//15Date類型
Date類型來自UTC
使用new操作符和Date構造函數
var now=new Date(); var someDate=new Date(Date.parse("May 25, 2004")); var someDate=new Date("May 25, 2004");
Date.UTC()同樣返回表示日期的毫秒數,但它與Date.parse()在構建時使用不同的信息。Date.UTC()的參數分別是年份、基于0的月份、月中的哪一天、小時數、分鐘、秒以及毫秒
var y2k=new Date(Date.UTC(2000,0)); var allFives=new Date(Date.UTC(2005,4,5,17,55,55));
Data.now()返回表示調用這個方法時的日期和時間的毫秒數
toDateString()以特定于實現的格式顯示星期幾、月、日和年
toTimeString()以特定于實現的格式顯示時、分、秒和時區
toLocaleDateString()以特定于實現的格式顯示時、分、秒
toLocaleTimeString()以特定于地區的格式顯示星期幾、月、日和年
toUTCString()以特定于實現的格式完整的UTC日期
getTime()返回表示日期的毫秒數,與valueOf()方法返回的值相同
setTime(毫秒)以毫秒數設置日期,會改變整個日期
getFullYear()取得4位數的年份,如2007而非僅07
getUTCFullYear()返回UTC日期的4位數年份
setFullYear(年)設置日期的年份。傳入的年份值必須是4位數字,如2007而非僅07
setUTCFullYear(年)設置UTC日期的年份。傳入的年份值必須是4位數字,如2007而非僅07
getMonth()返回日期中的月份,其中0表示一月,11表示十二月
getUTCMonth()返回UTC日期中的月份,其中0表示一月,11表示十二月
setMonth(月)設置日期的月份。傳入的月份值必須大于0,超過11則增加年份
setUTCMonth(月)設置UTC日期的月份。傳入的月份值必須大于0,超過11則增加年份
getDate()返回日期月份中的天數,1到31
getUTCDate()返回UTC日期月份中的天數,1到31
setDate(日)設置日期月份中的天數。如果傳入的值超過了該月中應有的天數,則增加月份
setUTCDate(日)設置UTC日期月份中的天數。如果傳入的值超過了該月中應有的天數,則增加月份
getDay()返回日期中星期的星期幾,其中0表示星期日,6表示星期六
getUTCDay()返回UTC日期中星期的星期幾,其中0表示星期日,6表示星期六
getHours()返回日期中的小時數,0到23
getUTCHours()返回UTC日期中的小時數,0到23
setHours(時)設置日期中的小時數。傳入的值超過了23則增加月份中的天數
setUTCHours(時)設置UTC日期中的小時數。傳入的值超過了23則增加月份中的天數
getMinutes()返回日期中的分鐘數,0到59
getUTCMinutes()返回UTC日期中的分鐘數,0到59
setMinutes(分)設置日期中的分鐘數。傳入的值超過59則增加小時數
setUTCMinutes(分)設置UTC日期中的分鐘數。傳入的值超過59則增加小時數
getSeconds()返回日期中的秒數,0到59
getUTCSeconds()返回UTC日期中的秒數,0到59
setSeconds(秒)設置日期中的秒數。傳入的值超過了59會增加分鐘數
setUTCSeconds(秒)設置UTC日期中的秒數。傳入的值超過了59會增加分鐘數
getMilliseconds()返回日期中的毫秒數
getUTCMilliseconds()返回UTC日期中的毫秒數
setMilliseconds(毫秒)設置日期中的毫秒數
setUTCMilliseconds(毫秒)設置UTC日期中的毫秒數
getTimezoneOffset()返回本地時間與UTC時間相差的分鐘數。例如,美國東部標準時間返回300。在某地進入夏令時的情況下,這個值會有所變化
RegExp類型
RegExp類型,g表示全局,i表示不區分大小寫,m表示多行模式
var text = "mom and dad and baby"; var pattern = /mom( and dad( and baby)?)?/gi; var matches = pattern.exec(text); alert(matches.index); // 0 alert(matches.input); // "mom and dad and baby" alert(matches[0]); // "mom and dad and baby" alert(matches[1]); // " and dad and baby" alert(matches[2]); // " and baby" var text = "cat, bat, sat, fat"; var pattern1 = /.at/; var matches = pattern1.exec(text); alert(matches.index); //0 alert(matches[0]); //cat alert(pattern1.lastIndex); //0 matches = pattern1.exec(text); alert(matches.index); //0 alert(matches[0]); //cat alert(pattern1.lastIndex); //0 var pattern2 = /.at/g; var matches = pattern2.exec(text); alert(matches.index); //0 alert(matches[0]); //cat alert(pattern2.lastIndex); //3 matches = pattern2.exec(text); alert(matches.index); //5 alert(matches[0]); //bat alert(pattern2.lastIndex); //8Function類型
Function類型
每個函數都是Function類型的實例,而且與其他引用類型一樣具有屬性和方法。函數時對象,因此函數名實際上也是一個紙箱函數對象的指針,不會與某個函數綁定。函數通常是使用函數聲明語法定義的。
function sum(num1,num2){ return num1+num2; } var sum=function(num1,num2){ return num1+num2; }
在代碼開始執行之前,解析器就已經通過一個名為函數聲明提升的過程,讀取并將函數聲明添加到執行環境中。對代碼求值時,JavaScript引擎在第一遍會聲明函數并將它們放到源代碼樹的頂部。所以即使聲明函數的diamante在調用它的代碼后面,JavaScript引擎也能把函數聲明提升到頂部。
alert(sum(10,10)); function sum(num1,num2){ return num+num2 }
alert(sum(10,10)); var sum=function(num1,num2){ return num1+num2 }Boolean類型
Boolean類型,與布爾值對應的引用類型。要創建Boolean對象,可以調用Boolean構造函數并傳入true或false值
var booleanObject=new Boolean(true)Number類型
Number類型
toFixed()方法按照指定的小數位返回數值的字符串表示,toExponential()方法返回以指數表示法表示的數值的字符串形式,toPrecision()方法返回固定大小fixed格式或者exponential格式
var num=10; alert(num.toFixed(2));//"10.00" alert(num.toExponential(1));//"1.0e+1" var num=99; alert(num.toPrecision(1));//"1e+2" alert(num.toPrecision(2));//"99" alert(num.toPrecision(3));//"99.0"String類型
String類型,使用String構造函數來創建
var stringObject=new String("hello world");
charAt()和chartCodeAt()接收一個參數,返回這個參數位置上的字符
concat()將一個或多個字符串拼接起來
slice()、substr()和substring()返回被操作字符串的一個子字符串
indexOf()和lastIndexOf()從字符串中搜索給定的子字符串
trim()創建一個字符串的副本,刪除前置及后綴的所有空格
toLowerCase()、toLocaleLowerCase()、toUpperCase()和toLocaleUpperCase()
var stringValue = "hello world"; alert(stringValue.charAt(1)); //"e" var stringValue = "hello world"; alert(stringValue.charCodeAt(1)); // 輸出"101" var stringValue = "hello "; var result = stringValue.concat("world"); alert(result); //"hello world" alert(stringValue); //"hello" var stringValue = "hello world"; alert(stringValue.slice(-3)); //"rld" alert(stringValue.substring(-3)); //"hello world" alert(stringValue.substr(-3)); //"rld" alert(stringValue.slice(3, -4)); //"lo w" alert(stringValue.substring(3, -4)); //"hel" alert(stringValue.substr(3, -4)); //""(空字符串) var stringValue = "hello world"; alert(stringValue.indexOf("o")); //4 alert(stringValue.lastIndexOf("o")); //7 var stringValue = " hello world "; var trimmedStringValue = stringValue.trim(); alert(stringValue); //" hello world " alert(trimmedStringValue); //"hello world" var stringValue = "hello world"; alert(stringValue.toLocaleUpperCase()); //"HELLO WORLD" alert(stringValue.toUpperCase()); //"HELLO WORLD" alert(stringValue.toLocaleLowerCase()); //"hello world" alert(stringValue.toLowerCase()); //"hello world" var text = "cat, bat, sat, fat"; var pattern = /.at/; //與 pattern.exec(text)相同 var matches = text.match(pattern); alert(matches.index); //0 alert(matches[0]); //"cat" alert(pattern.lastIndex); //0 var text = "cat, bat, sat, fat"; var pos = text.search(/at/); alert(pos); //1 var text = "cat, bat, sat, fat"; var result = text.replace("at", "ond"); alert(result); //"cond, bat, sat, fat" result = text.replace(/at/g, "ond"); alert(result); //"cond, bond, sond, fond" var stringValue = "yellow"; alert(stringValue.localeCompare("brick")); //1 alert(stringValue.localeCompare("yellow")); //0 alert(stringValue.localeCompare("zoo")); //-1
內置對象
Global對象,eval方法就像是一個完整的ECMAScript解析器,只接收一個參數,即要執行的ECMAScript字符串。eval{"alert("hi")"};相當于alert("hi");
對象屬性
undefined:特殊值undefined
Date:構造函數Date
NaN:特殊值NaN
RegExp:構造函數RegExp
Infinity:特殊值Infinity
Error:構造函數Error
Object:構造函數Object
EvalError:構造函數EvalError
Array:構造函數Array
RangeError:構造函數RangeError
Function:構造函數Function
ReferenceError:構造函數ReferenceError
Boolean:構造函數Boolean
SyntaxError:構造函數SyntaxError
String:構造函數String
TypeError:構造函數TypeError
Number:構造函數Number
URIError:構造函數URIError
Math對象
min()和max()方法確定最大值和最小值
Math.ceil()、Math.floor和()Math.round()四舍五入相關方法
Math.random()獲取隨機值
var max = Math.max(3, 54, 32, 16); alert(max); //54 var min = Math.min(3, 54, 32, 16); alert(min); //3 alert(Math.ceil(25.9)); //26 alert(Math.ceil(25.5)); //26 alert(Math.ceil(25.1)); //26 alert(Math.round(25.9)); //26 alert(Math.round(25.5)); //26 alert(Math.round(25.1)); //25 alert(Math.floor(25.9)); //25 alert(Math.floor(25.5)); //25 alert(Math.floor(25.1)); //25 var num = Math.floor(Math.random() * 10 + 1);
其他方法
Math.abs(num)返回num的絕對值
Math.asin(x)返回x的反正弦值
Math.exp(num)返回Math.E的num次冪
Math.atan(x)返回x的反正切值
Math.log(num)返回num的自然對數
Math.atan2(y,x)返回y/x的反正切值
Math.pow(num,power)返回num的power次冪
Math.cos(x)返回x的余弦值
Math.sqrt(num)返回num的平方根
Math.sin(x)返回x的正弦值
Math.acos(x)返回x的反余弦值
Math.tan(x)返回x的正切值
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97549.html
摘要:當代碼在一個環境中執行時,會創建變量對象的一個作用域鏈。作用域鏈的用途,是保證對執行環境有權訪問的所有變量和函數的有序訪問。這樣,一直延續到全局執行環境全局執行環境的變量對象始終都是作用域鏈中的最后一個對象。 變量、作用域和內存問題 基本類型和引用類型的值 基本類型值指的是簡單的數據段,而引用類型值值那些可能由多個值構成的對象。 定義基本類型值的引用和引用類型值的方法是類似的,創建...
摘要:類型對象是的一個實例,表示整個頁面,而且,對象是對象的一個屬性,因此可以將其作為全局對象來訪問。刪除指定位置的行。創建創建創建第一行創建第二行將表格添加到文檔主體中 DOM 節點層次 Node類型 DOM1級定義了一個Node接口,該接口將由DOM中的所有節點類型實現 節點類型由在Node類型中定義的12個數值常量來表示,任何節點類型必居其一 Node.ELEMENT_NODE(...
摘要:腳本編程跨文檔消息傳遞跨文檔消息傳送,簡稱為,指的是來自不同域的頁面間傳遞消息的核心是方法,在規范中,除了部分之外的其他部分也會提到這個方法名,但都是為了同一個目的,向另一個地方傳遞參數。第一個頁面加載時為空 HTML5腳本編程 跨文檔消息傳遞 跨文檔消息傳送,簡稱為XMD,指的是來自不同域的頁面間傳遞消息 XMD的核心是postMessage()方法,在HTML5規范中,除了XDM...
摘要:如果不需要偽元素信息,第二個參數可以輸操作樣式表類型表示的是樣式表,包括通過元素包含的樣式表和在元素中定義的樣式表表示樣式表是否被禁用的布爾值。包括元素的高度可見的水平滾動條的高度上邊框高度和下邊框高度。顯示處理指令節點。 DOM2和DOM3 DOM變化 針對XML命名空間的變化 有了XML命名空間,不同XML文檔的元素就可以混合在一起,共同構成格式良好的文檔,而不必擔心發生命名沖突...
摘要:也就是說避免屬性查找或其他的操作。簡化循環體循環體是執行最多的,所以要確保其被最大限度地優化。代碼組織組織代碼要考慮到可維護性并不一定是傳送給瀏覽器的最好方式。 最佳實踐 可維護性 什么是可維護性的代碼 如果說代碼是可維護的,它需要遵循以下特點 可理解性——其他人可以接手代碼并理解它的意圖和一般途徑,而無需原開發人員的完整解釋。 直觀性——代碼中的東西一看就能明白,不管其操作過程多...
閱讀 3371·2021-11-22 09:34
閱讀 2857·2021-10-09 09:43
閱讀 1445·2021-09-24 09:47
閱讀 2199·2019-08-30 12:53
閱讀 998·2019-08-29 14:00
閱讀 3356·2019-08-29 13:17
閱讀 2269·2019-08-28 18:00
閱讀 1284·2019-08-26 12:00