一、標識符:數據結構
標識符,是指變量、函數、屬性的名字,或者函數的參數。函數
標識符的命名規則:spa
(1)第一個字符必須是字母、下劃線或者美圓符號對象
(2)其餘字符能夠是字母、下劃線、美圓符號和數字。ip
修改變量值的同時能夠修改值的類型作用域
二、用var操做符定義的變量將成爲定義該變量的做用域中的局部變量,省略var將創建一個全局變量。字符串
三、ECMAScript中有五種簡單的數據類型:Undefined、Null、Boolean、Number、String,還有一種複雜的數據結構-Object,它的本質是一組由無序の 名值對組成it
四、typeof是一個操做符而不是函數後臺
五、Number類型的八進制的字面值的第一位必須是零,可是八進制在嚴格模式下是無效的。浮點數的最高精度是17位小數。變量
六、ECMAScript可以表示的最小的數值保存在Number.MIN_VALUE中,最大的數值保存在Number.MAX_VALUE中,要肯定一個數值是否是又窮的,可使用isFinite()
七、任何涉及NaN的操做都會返回NaN;NaN與任何值都不想等,包括NaN自己。
isNaN()函數:
alert(isNaN(NaN)) //true
alert(isNaN(10)) //false
alert(isNaN("10")) //false
alert(isNaN("blue")) //true
alert(isNaN("true")) //false
八、數值轉換:三個函數能夠將非數值轉換爲數值:Number(),parseInt()、parseFloat(),其中Number()能夠用於任何數據類型,而另外兩個函數專門用於把字符串轉換爲數值。
九、parseInt()已經不具有解析八進制的能力,所以「070」前導的零會被認爲是無效的,從而將這個值當作「70」,結果獲得十進制的"70"。
十、parseFloat()函數是從第一個字符開始解析每一個字符,並且也是一直解析到字符串末尾,或者解析到碰見一個無效的浮點數字字符爲止。,字符串的第一個字符是有效的,而第二個字符是無效的。parseFloat()只解析十進制數。
十一、把一個值轉換爲一個字符串有兩種方式:(1)幾乎全部值都有的toString()方法,可是NULL和Undefined沒有這個方法,這個函數的括號內能夠有一個參數,即:輸出數值的基數;(2)在不知道要轉換的值是null或者undefined的狀況下,還可使用轉換類型函數String().
十二、Object類型,對象其實就是一組數據與功能的集合。建立對象:var o=new Object();
1三、位操做符:按位非(~);取返回數值的反碼。按位或(|),按位異或(^);左移(<<);有符號的右移(>>);無符號的右移(>>>)
1四、加性操做符:若是一個操做數是字符串,那麼就要應用如下的規則:
(1)若是兩個操做數都是字符串則將兩個操做數鏈接起來。
(2)若是隻有一個操做數的字符串,將另外一個操做數轉換爲字符串,而後在拼接。
1五、減法操做符:
若是有一個操做數是字符串、布爾值或者null或者undefined,則先在後臺調用Number()函數將其轉換爲數值,而後再根據前面的規則進行減法運算。
若是一個操做數是對象,則調用對象的valueOf()方法取得表示該對象的數值,若是值爲NaN,則減法的結果是NaN.若是對象沒有valueOf()方法,則調用toString()方法並將獲得的字符串轉換爲數值。
1六、相等和不相等--先轉換後比較。 全等和不全等-------僅做比較而不轉換
相等和不相等這兩個操做符比較時應該遵循的原則:
(1)null和undefined是相等的
(2)要比較相等性以前,不能將null和undefined1轉換爲任何其餘值
(3)若是有一個操做符爲NaN,則相等運算符返回false,不相等運算符返回true。NaN不等於NaN
(4)若是兩個操做數都是對象,則比較他們是否是都是同一個對象。
1七、注意:null==undefined會返回true,由於它們是相似的值;可是null===undefined會返回false,由於它們是不一樣類型的值。
1八、若是表示要迭代的獨享的變量值爲null或者undefined,for-in語句會拋出錯誤。,因此要在使用for-in循環前,先檢測確認該對象的數值是否是null或者undefined。
1九、switch語句在比較的時候使用的是全等操做符,所以不會發生類型轉換(例如字符串"10"不等於數值10)
20、arguments對象的length屬性能夠獲取有多少個參數傳遞給了函數,arguments對象能夠與命名參數一塊兒使用。
2一、arguments對象的長度是由傳入的參數的個數決定的,不是由定義函數時的命名參數的個數決定的,沒有傳遞值的命名參數將自動被賦予undefined值。