【筆記】《JavaScript高階程式設計(第3版)》(2)

snowfall發表於2017-04-14

第3章,基本概念
3.1,語法
A,ECMAScript中的一切(變數、函式名和操作符)都區分大小寫。
B,ECMAScript識別符號采用駝峰大小寫格式。
3.2,關鍵字和保留字
3.3,變數
A,ECMAScript的變數是鬆散型別的,定義時要使用var操作符,省略var,可以建立一個全域性變數。
3.4,資料型別
A,5種簡單資料型別:Undefined、Null、Boolean、Number和String。1種複雜資料型別:Object。
B,從邏輯角度來看,null值表示一個空物件指標。只要意在儲存物件的變數還沒有真正儲存物件,就應該明確地讓該變數儲存null值。這樣做不僅可以體現null作為空物件指標的慣例,而且也有助於進一步區分null和undefined。
C,浮點數值在某些語言中也被稱為雙精度數值。
D,八進位制字面值的第一位必須是零(0),然後是八進位制數字序列(0~7)。如果字面值中的數值超出了範圍,那麼前導零將被忽略,後面的數值將被當作十進位制解析。十六進位制字面值的前兩位必須是0x,後跟字母大小寫皆可。
E,永遠不要測試某個特定的浮點數值。
F,Infinity不是能夠參與計算的數值。
G,NaN,即非數值(Not a Number)是一個特殊的數值,這個數值用於表示一個本來要返回數值的運算元未返回數值的情況(這樣就不會丟擲錯誤了)。NaN與任何值都不相等。
H,有3個函式可以把非數值轉換為數值:Number()、parseInt()、parseFloat()。parseFloat()只解析十進位制值。
I,用雙引號表示的字串和單引號表示的字串完全相同。
J,預設情況下,toString()方法以十進位制格式返回數值的字串表示。而通過傳遞基數,toString()可以輸出二進位制、八進位制、十六進位制。在不知道要轉換的值是不是null或undefined的情況下,還可以使用轉型函式String()。
K,ECMAScript中的所有數值都以IEEE-754 64位格式儲存。
L,對25執行按位非操作,結果得到了-26。這也驗證了按位非操作的本質:運算元的負值減1。
M,無符號右移操作符由3個大於號(>>>)表示。無符號操作符會把負數的二進位制碼當成正數的二進位制碼。
N,ECMAScript不存在塊級作用域。
O,for-in語句是一種精準的迭代語句,可以用來列舉物件的屬性。為了保證最大限度的相容性,建議在使用for-in迴圈之前,先檢測確認該物件的值不是null或undefined。
P,break和continue語句都可以與label語句聯合使用,從而返回程式碼中特定的位置。這種聯合使用的情況多發生在迴圈巢狀的情況下。聯合標籤,break可以退出多個迴圈。
Q,開發大型應用程式時,不建議使用with語句。
R,可以在switch語句中使用任何資料型別,無論是字串,還是物件都沒有問題,每個case的值不一定是常量,可以是變數,甚至是表示式。switch語句在比較值時使用的是全等操作符,因此不會發生型別轉換。
S,ECMAScript函式的一個重要特點:命名的引數只提供便利,但不是必須的。
T,arguments的值永遠與對應命名引數的值保持同步。
U,通過檢查傳入函式中引數的型別和數量並作出不同的反應,可以模仿方法的過載。
V,ECMAScript沒有為整數和浮點數分別定義不同的資料型別,Number型別可以用於表示所有數值。
W,未指定返回值的函式返回的是一個特殊的undefined值。

相關文章