1. 程式人生 > 其它 >JS犀牛書學習筆記——第三章 型別、值和變數

JS犀牛書學習筆記——第三章 型別、值和變數

JS犀牛書第三章筆記

第三章 型別、值和變數

資料型別分為原始資料型別(數字、字串和布林值)和物件資料型別;

特殊原始值:null和undefined;

數字

JavaScript支援複雜的算術運算,通過作為Math物件的屬性定義的函式和常量;

算術運算在溢位(±Infinity)、下溢(0)或被零整除的時候不會報錯;

NaN非數字值,他和任何值都相等,包括自身;

二進位制浮點數和四捨五入錯誤;

用大整數進行重要的金融計算

字串直接量

當js程式碼和HTML程式碼混雜在一起的時候,最好在js和HTML程式碼中各自使用獨立的引號風格

ES3字串直接量必須寫在一行,ES5字串直接量可拆分成數行,每行必須以反斜線結束;

字串提供了許多可以呼叫的方法;

ES5中,字串可以當作只讀資料,除了charAt(),還可以用方括號來訪問字串的單個字元;

布林值

任意js的值都可以轉換為布林值,undefined,null,0,-0,NaN,空字串都會被轉換成false,其他所有值,包括所有物件(陣列)都會被轉換成true;

null和undefined

都表示值的空缺,要使用嚴格相等運算子“===”來區分它們;

全域性物件

當js啟動器啟動時(或者任何Web瀏覽器載入新頁面的時候),他將建立一個新的全域性物件,比給他一組定義的初始屬性;

包裝物件

js物件是一種複合值,他是屬性或已命名值的集合;

存取字串、數字或布林值的屬性時建立的臨時物件稱作包裝物件;

不可變的原始值和可變的物件引用

原始值的比較是值的比較;

物件的比較並非值的比較(兩個物件包含同樣的屬性及相同的值,但他們也是不等的),物件也稱為引用型別,物件值都是引用;

物件的比較均是引用的比較,想比較兩個單獨的物件或陣列,則必須比較它們的屬性或元素;

型別轉換

js運算子和語句期望使用多樣化的資料型別,並可以相互轉化;

型別轉換表p49;

顯式型別轉換:toFixed() toExponential() toPrecision() Number() parseInt() parseFloat()

物件轉換為原始值:toString() valueOf()

函式作用和宣告提前:

函式作用域是指在函式內宣告的所有變數在函式體內始終是可見的;

由於函式作用域的特性,區域性變數在整個函式體始終是有定義的,函式體內區域性變數遮蓋了同名全域性變數,只有在執行賦值語句時才會被真正賦值;