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
對于未聲明過的變量只能進行一種操作,即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
從最底層講不同的對象在底層都表示為二進制,在javascript中二進制前三位都為0會被判斷為object類型,null的二進制表示是全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)文章
利用JavaScript實現(xiàn)簡單的網(wǎng)頁時鐘
這篇文章主要介紹了利用JavaScript實現(xiàn)簡單的網(wǎng)頁時鐘,主要使用了js的日期對象,實現(xiàn)的時候先創(chuàng)建一個日期對象,并進行網(wǎng)頁布局,對時間獲取之后將時間填入對應(yīng)的標(biāo)簽內(nèi)。然后使用多線程實現(xiàn)時鐘的變動,需要的朋友可以參考一下2022-02-02微信小程序使用uni-app開發(fā)小程序及部分功能實現(xiàn)詳解
uni-app是一個使用Vue.js 開發(fā)所有前端應(yīng)用的框架,下面這篇文章主要給大家介紹了關(guān)于微信小程序使用uni-app開發(fā)小程序及部分功能實現(xiàn)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08根據(jù)鼠標(biāo)的位置動態(tài)的控制層的位置
根據(jù)鼠標(biāo)的位置動態(tài)的設(shè)置層的位置的js代碼。2009-11-11用戶引導(dǎo)插件driverjs的基本使用以及彈窗樣式修改方法
Driver.js是一個強大的、輕量級、使用原生JavaScript引擎開發(fā)的庫,用于在頁面聚焦用戶的關(guān)注點,下面這篇文章主要介紹了用戶引導(dǎo)插件driverjs的基本使用以及彈窗樣式修改方法,需要的朋友可以參考下2024-04-04JS表示Stack類練習(xí)用棧實現(xiàn)任意進制轉(zhuǎn)換
這篇文章主要為大家介紹了JS表示Stack類練習(xí)用棧實現(xiàn)任意進制轉(zhuǎn)換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04