1.概述
JS里有7種數(shù)據(jù)類型:
數(shù)值(number):整數(shù)和小數(shù)
字符串(string):文本
布爾:表示真?zhèn)蔚膬蓚€(gè)特殊值,即true和false
undefined:表示未定義或不存在。即由于目前沒有定義,所以此處暫時(shí)沒有任何值
null:表示空值,即此處的值為空
對(duì)象各種值組成的集合。數(shù)組和函數(shù)也屬于object
2.typeof運(yùn)算符
typeof運(yùn)算符,可以確定一個(gè)值到底是什么類型
typeof 123 // "number"
typeof '123' // "string"
typeof false // "boolean"
但是注意一點(diǎn):不能用來(lái)檢測(cè)null和函數(shù)
typeof null // 'object'
typeof 函數(shù) // 'function'
我們也可以用它來(lái)檢查一個(gè)變量是否被聲明:
// 錯(cuò)誤的寫法
if (v) {
// ...
}
// ReferenceError: v is not defined
// 正確的寫法
if (typeof v === "undefined") {
// ...
}
2.number
- 整數(shù)和小數(shù):1 .1
- 科學(xué)計(jì)數(shù)法:1.23e2
- 二進(jìn)制:0b11
- 八進(jìn)制:011(此處有問(wèn)題,后來(lái)添加了0o11來(lái)表示)
- 十六進(jìn)制:0x11
3.string
- HTML語(yǔ)言的屬性值使用雙引號(hào)
- 字符串默認(rèn)只能寫在一行內(nèi),分成多行會(huì)報(bào)錯(cuò)
- 如果必須分成多行,要在每一行的后面使用反斜杠或用+號(hào)或用反引號(hào)
var s = '12345' +
'67890' // 無(wú)回車符號(hào)
var s = `12345
67890` // 含回車符號(hào)
4.boolean
以下六個(gè)值都會(huì)在if語(yǔ)句中傳為false
undefined
null
false
0
NaN
''或""
5.undefined和null
- 對(duì)于null和undefined,大致可以像下面這樣理解。
- null表示空值,即該處的值現(xiàn)在為空。調(diào)用函數(shù)時(shí),某個(gè)參數(shù)未設(shè)置任何值,這時(shí)就可以傳入null,表示該參數(shù)為空。比如,某個(gè)函數(shù)接受引擎拋出的錯(cuò)誤作為參數(shù),如果運(yùn)行過(guò)程中未出錯(cuò),那么這個(gè)參數(shù)就會(huì)傳入null,表示未發(fā)生錯(cuò)誤。
- undefined表示“未定義”,下面是返回undefined的典型場(chǎng)景。
// 變量聲明了,但沒有賦值
var i;
i // undefined
// 調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒有提供,該參數(shù)等于 undefined
function f(x) {
return x;
}
f() // undefined
// 對(duì)象沒有賦值的屬性
var o = new Object();
o.p // undefined
// 函數(shù)沒有返回值時(shí),默認(rèn)返回 undefined
function f() {}
f() // undefined