JavaScript中的null和undefined區(qū)別介紹
JavaScript中存在2個代表信息不存在的特殊值:null和undefined。個人認為可以從以下角度來理解這兩個特殊值之間的區(qū)別:
1.null代表有存儲信息的容器(比如之前被賦過值的變量),但該容器中的內(nèi)容為空。
2.undefined代表不存在用于存儲信息的容器。
JavaScript中的null與其它多數(shù)編程語言中的null沒有什么區(qū)別,基本用于表示信息值為空;而在JavaScript中下述情況下表達式返回結果為undefined:
1.從未被賦過值的變量。
2.訪問某個對象不存在的屬性值。
3.訪問數(shù)組中不存在的成員。
4.調(diào)用沒有return語句的函數(shù)。
5.調(diào)用return語句為空(“return ;”)的函數(shù)。
事實上,和Infinity、NaN一樣,undefined在JavaScript中是一個全局變量,在ECMAScript 3中甚至可以被賦予其它值。ECMAScript 5糾正了這個錯誤,并將undefined變量設定為只讀。
對于null和undefined之間的比較,可以使用===全等操作符。如果使用普通的==操作符,null與undefined是等價的:
console.log(null == undefined);//true
console.log(null === undefined);//false
在程序編寫過程中,如果需要對某個變量賦以空值,一般使用null而不是undefined。其原因在于:
1.undefined一般認為是屬于系統(tǒng)層面的、報錯層面的信息缺失。
2.null一般認為是屬于編程層面的、邏輯操作層面的信息值為空。
如果在程序中涉及類型轉換,那么當轉換為number類型時,null和undefined的結果是不一樣的:
1.undefined轉換為number的結果是NaN。
2.null轉換為number的結果是0。
值得一提的是,空字符串和空數(shù)組轉換成number后的結果也是0。
至于JavaScript中為什么要設計兩個表示“沒有”的值,可以參見阮一峰的博客文章。
實驗
在下述實驗代碼中,表達式結果均為undefined:
var a;
console.log(a);
function Sample(x){
this.x = x;
}
var s = new Sample();
console.log(s.x)
console.log(s.notExistVariable);
var n = [2,3,4];
console.log(n[8]);
function test(){
//no return value for this function
}
console.log(test());
function test2(){
return;
}
console.log(test2());
- javascript中undefined與null的區(qū)別
- 一文讓你徹底弄懂js中undefined和null的區(qū)別
- JavaScript undefined及null區(qū)別實例解析
- JavaScript中undefined和null的區(qū)別
- javascript中undefined與null的區(qū)別
- JavaScript中Null與Undefined的區(qū)別解析
- 詳解JavaScript中undefined與null的區(qū)別
- js中 關于undefined和null的區(qū)別介紹
- JS基礎之undefined與null的區(qū)別分析
- JS中null和undefined的區(qū)別
相關文章
利用Javascript裁剪圖片并存儲的簡單實現(xiàn)
裁剪圖片對我們來說是再熟悉不過的了,最近工作中就又遇到了這個需求,所以想著干脆整理下來,方法大家和自己在需要的時候參考學習,所以這篇文章主要介紹了利用Javascript裁剪圖片并存儲的簡單實現(xiàn),后端PHP處理我用的是THINKPHP框架,需要的朋友可以參考下。2017-03-03
Bootstrap Table從服務器加載數(shù)據(jù)進行顯示的實現(xiàn)方法
Bootstrap-Table是一個Boostrap的表格插件,能夠?qū)SON數(shù)據(jù)直接顯示在表格中。接下來通過本文給大家分享Bootstrap Table從服務器加載數(shù)據(jù)進行顯示的實現(xiàn)方法,感興趣的朋友一起看看吧2016-09-09
Javascript正則表達式實現(xiàn)輸入框驗證信息功能實例
正則表達式是用于匹配字符串中字符組合的模式,在JavaScript中正則表達式也是對象,這篇文章主要給大家介紹了關于Javascript正則表達式實現(xiàn)輸入框驗證信息功能的相關資料,需要的朋友可以參考下2024-05-05
Bootstrap彈出框modal上層的輸入框不能獲得焦點問題的解決方法
這篇文章主要介紹了Bootstrap彈出框modal上層的輸入框不能獲得焦點問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12

