number
- JavaScript內(nèi)部,所有數(shù)字都是以64位浮點(diǎn)數(shù)形式存儲(chǔ),整數(shù)也是。
- JavaScript能夠表示的數(shù)值范圍是2-1023到21024,超出的范圍的數(shù)無(wú)法表示。
- 溢出能夠表示的范圍會(huì)返回Infinity(正數(shù))或者0(負(fù)數(shù))數(shù)值可以有多種表示方法,字面形式和科學(xué)計(jì)數(shù)法。
- 字面形式:35 0xFF(十六進(jìn)制) 123e。除以下情況外都采用字面形式表示,小數(shù)點(diǎn)前數(shù)字多于21位或后的零多于5個(gè)。
- 有四種進(jìn)制來(lái)表示字面量:十進(jìn)制 十六進(jìn)制 八進(jìn)制 二進(jìn)制。
- 屬于number類型的特殊數(shù)值:-0 +0 NaN 正負(fù)Infinity。
- NaN參與的絕大部分運(yùn)算都會(huì)得到諸如NaN false 這樣的答案。
- 數(shù)值相關(guān)的全局方法 parseInt() parseFloat() isNaN() isFinite()
- 整數(shù)和小數(shù):1 1.1 .1
- 科學(xué)記數(shù)法:1.23e2
- 二進(jìn)制:0b11
- 八進(jìn)制:011(后來(lái) ES5 添加了 0o11 語(yǔ)法)
- 十六進(jìn)制:0x11
string
- 字符串默認(rèn)只能寫在一行內(nèi),分成多行將會(huì)報(bào)錯(cuò),如果必須,要在每一行的結(jié)尾使用反斜桿,但反斜桿后不能有諸如空格的其他字符。
- 連接運(yùn)算符 + 可以連接多個(gè)單行字符串,將長(zhǎng)字符串拆成多行書寫。
- length屬性返回字符串長(zhǎng)度。
- 由于歷史原因,JavaScript使用Unicode字符集。
- btoa()將任意值1轉(zhuǎn)為Base64,atob()將base64編碼轉(zhuǎn)為原來(lái)的值。
- 空字符串:''
- 多行字符串:
var s = '12345' +
'67890' // 無(wú)回車符號(hào)
或
var s =12345 67890// 含回車符號(hào)
symbol
- Symbol 的用途就是如此:Symbol 可以創(chuàng)建一個(gè)獨(dú)一無(wú)二的值(但并不是字符串)。
- Symbol 生成一個(gè)全局唯一的值。
null & undefined
- 都表示沒(méi)有,在真值判斷中都是false,null == undefined
- 二者的來(lái)由很有歷史原因,最開(kāi)始null用于標(biāo)識(shí)對(duì)象為空,這也是現(xiàn)在tyepof null //object的原因,之后又添加了一個(gè)undefined類型。[2]
- 二者的區(qū)別,null是一個(gè)表示‘空’的對(duì)象,轉(zhuǎn)為數(shù)值時(shí)為0,undefined 是一個(gè)表示此處無(wú)定義的原始值,轉(zhuǎn)為數(shù)值時(shí)為NaN。
(規(guī)范)如果一個(gè)變量沒(méi)有被賦值,那么這個(gè)變量的值就是 undefiend
(習(xí)俗)如果你想表示一個(gè)還沒(méi)賦值的對(duì)象,就用 null。如果你想表示一個(gè)還沒(méi)賦值的字符串/數(shù)字/布爾/symbol,就用 undefined(但是實(shí)際上你直接 var xxx 一下就行了,不用寫 var xxx = undefined)
Boolean
- 除了以下值: undefined null false 0 NaN "" 或者' '其他值都視為true。
- 空數(shù)組和空對(duì)象都是true。
object
- 對(duì)象是一組鍵值對(duì)的集合(key-value),是一種無(wú)序的符合數(shù)據(jù)集合。
- 對(duì)象里的value可以是各種類型的數(shù)據(jù),對(duì)象里可以嵌套對(duì)象。
- key都是字符串,可加可不加引號(hào)。
- 存放于對(duì)象中的函數(shù)稱為方法。
- 對(duì)象屬性的讀取和賦值 objec.property || object['property']。
- 可通過(guò)(Object.keys(obj)).length 獲得對(duì)象key的長(zhǎng)度。
- 使用delete命令刪除對(duì)象屬性值 delete obj.p。
- 使用in運(yùn)算符檢查對(duì)象中是否有某個(gè)屬性 'p' in obj。
- 使用for in 循環(huán)遍歷對(duì)象屬性,會(huì)跳過(guò)不可遍歷屬性,且遍歷繼承的屬性。
typeof 操作符
xxx 的類型 | string | number | boolean | symbol | undefined | null | object | function
---|---|---|---|---|---|---|---|---|---|---
typeof xxx | 'string' | 'number' | 'boolean' | 'symbol' | 'undefined' | 'object' | 'object' | 'function'