JavaScript基本類型值-Undefined、Null、Boolean
大致介紹
ECMAScript中有5中簡單的數(shù)據(jù)類型(也稱為基本數(shù)據(jù)類型):Undefined、Null、Boolean、Number、String。
Undefined
Undefined時全局變量的一個屬性,它只有一個值即:undefined。當(dāng)使用var聲明變量但未對其初始化時,這個變量的值就是undefined。
var test; console.log(test); //undefined
對于未聲明過的變量只能進(jìn)行一種操作,即typeof檢測其數(shù)據(jù)類型
//var a console.log(typeof a); //undefined
undefined通常出現(xiàn)的場景:
1、已經(jīng)聲明但未賦值的變量
2、typeof檢測未聲明的變量的數(shù)據(jù)類型
3、沒有返回值的函數(shù)的執(zhí)行結(jié)果
4、函數(shù)沒有傳入?yún)?shù)
5、void(expression)
//1、
var test;
console.log(test); //undefined
//2、
//var a
console.log(typeof a); //undefined
//3、
function f(){}
console.log(f()); //undefined
//4、
function f(x){
return x;
}
console.log(f()); //undefined
//5、
console.log(void(0)); //undefined
嚴(yán)格相等和undefined
可以使用嚴(yán)格相等和不相等來檢測一個變量是否擁有值
var x ;
if(x === undefined){
console.log(1);
}else{
console.log(2);
}
注意:這里要用嚴(yán)格相等,因為 null == undefined
void操作符和undefined
可以用void操作符來代替undefined
var x ;
if(x === void(0)){
console.log(1);
}else{
console.log(2);
}
Null
Null類型是第二個只有一個值的數(shù)據(jù)類型,這個特殊的值是null。從邏輯的角度看,null值表示一個空對象的指針。null常被放在期望一個對象,但不引用任何對象的參數(shù)位置。
console.log(document.getElementById('ol')); //null
注意:
console.log(typeof null); //object
產(chǎn)生這樣的原因就如前面所說,null值表示一個空對象的指針,用typeof檢測數(shù)據(jù)類型,肯定就是object
從最底層講不同的對象在底層都表示為二進(jìn)制,在javascript中二進(jìn)制前三位都為0會被判斷為object類型,null的二進(jìn)制表示是全0,所以執(zhí)行typeof時返回'object'
null和undefined
null和undefined時不同的,但是他們都表示空值,null表示“空值”,undefined表示“未定義”。
typeof null // object typeof undefined // undefined null === undefined // false null == undefined // true null === null // true null == null // true !null //true isNaN(1 + null) // false isNaN(1 + undefined) // true
Boolean
Boolean類型是ECMAScript中使用最多的一種類型,該類型只有兩個字面值:true和false
注意:Boolean類型的字面值true和false是區(qū)分大小寫的
雖然Boolean類型的字面值只有兩個,但是ECMAScript中所有的類型的值都有與這兩個Boolean值等價的值。要將一個值轉(zhuǎn)換為對應(yīng)的Boolean值,可以調(diào)用轉(zhuǎn)型函數(shù)Boolean()
var message = 'hello world'; var messageBoolean = Boolean(message); console.log(messageBoolean); //true
轉(zhuǎn)換表:
| 值 | 字符串 | 數(shù)字 | 布爾值 |
| undefined | "undefined" | NaN | false |
| null | “null” | 0 | false |
| true | “true” | 1 | |
| false | “false” | 0 | |
| ""空字符串 | 0 | ||
| "1.2" 非空,數(shù)字 | 1.2 | ||
| "o" 非空,非數(shù)字 | |||
| 0 | "0" | false | |
| -0 | "0" | false | |
| NaN | "NaN" | false | |
| infinity | "infinity" | true | |
| -infinity | "infinity" | true |
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
設(shè)置cookie指定時間失效(實(shí)例代碼)
下面小編就為大家?guī)硪黄O(shè)置cookie指定時間失效(實(shí)例代碼)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
JavaScript字符串處理之trim()和replace()詳解
這篇文章主要給大家介紹了關(guān)于JavaScript字符串處理之trim()和replace()的相關(guān)資料,文中介紹的所有這些方法都不會修改原始字符串,而是返回一個新的字符串,需要的朋友可以參考下2024-10-10
微信小程序基于picker實(shí)現(xiàn)級聯(lián)菜單
這篇文章主要為大家詳細(xì)介紹了微信小程序基于picker實(shí)現(xiàn)級聯(lián)菜單,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02
javascript中強(qiáng)制執(zhí)行toString()具體實(shí)現(xiàn)
Javascript通常會根據(jù)方法或運(yùn)算符的需要而自動把值轉(zhuǎn)成所需的類型,這可能導(dǎo)致各種錯誤,接下來為大家介紹下javascript如何強(qiáng)制執(zhí)行toString(),感興趣的朋友可以參考下哈2013-04-04
在layui中使用form表單監(jiān)聽ajax異步驗證注冊的實(shí)例
今天小編就為大家分享一篇在layui中使用form表單監(jiān)聽ajax異步驗證注冊的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
淺談layui數(shù)據(jù)表格判斷問題(加入表單元素),設(shè)置單元格樣式
今天小編就為大家分享一篇淺談layui數(shù)據(jù)表格判斷問題(加入表單元素),設(shè)置單元格樣式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10

