成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

我所知道的JavaScript之undefined和null的區(qū)別

hatlonely / 1928人閱讀

摘要:是全局對象的一個屬性,當聲明了一個變量而未初始化時,得到的就是。作為函數(shù)的參數(shù),表示該函數(shù)的參數(shù)不是對象。作為對象原型鏈的終點。表示缺少值,此處應該有值,但未定義。因此和的值相等而類型不相等。數(shù)字運算不相同這是由于約定的不同所決定的。

對于undefined和null我一直知道他們有很多區(qū)別,也知道一點關于他們的區(qū)別,但卻不具體系統(tǒng),因此總結了一下,主要心得如下:

我們要區(qū)分它們,首先要明確這兩個值所代表的意義:

null 是一個 JavaScript字面量,表示空值,即沒有對象被呈現(xiàn),它是JavaScript的原始值之一,使用typeof運算得到 “object”。

undefined 是全局對象的一個屬性,當聲明了一個變量而未初始化時,得到的就是undefined。

具體表現(xiàn)如下:

a;
console.log(a);
//Uncaught ReferenceError: a is not defined

var b = null;
console.log(b); //null

而它們出現(xiàn)的情景也各不相同,具體總結如下:

null:即表示為空,沒有對象。

作為函數(shù)的參數(shù),表示該函數(shù)的參數(shù)不是對象。

作為對象原型鏈的終點。

undefined:表示缺少值,此處應該有值,但未定義。

變量被聲明了,但沒有值,此時為undefined

調(diào)用函數(shù)時,應該提供的參數(shù)沒有提供,此時為undefined

對象沒有賦值的屬性,此屬性值為undefined

函數(shù)沒有返回值,默認返回undefined

null與undefined的區(qū)別主要體現(xiàn)在以下三點:
1.值相等而類型不相等
var x;
var y = null;
console.log(x == y); //ture
console.log(x ===y); //false

在上面的代碼中 == 會繼續(xù)類型轉(zhuǎn)換,且值是相等的,所以會得出 ture;而在
=== 中則不會發(fā)生類型轉(zhuǎn)換所以得出的是 false。因此undefined和null的值相等而類型不相等。

2.數(shù)字運算不相同
1+null 
//1

1+undefined 
//NaN

這是由于約定的不同所決定的。在規(guī)定中數(shù)字與undefined運算時,結果都NaN。在與null運算時,null始終為0。

3.具體作法不一樣

當我們想要判斷一個值是否存在可以這樣寫:

objA.valueA === undefined 

而當我們想要判斷一個對象是否為空時可以這么寫:

objA.valueA == null 

最后借一波MDN總結的null和undefined的區(qū)別的代碼:

typeof null         // object (因為一些以前的原因而不是"null")
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

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/93309.html

相關文章

  • 我所理解JavaScriptundefinednull區(qū)別

    摘要:他們的布爾值都是,說到布爾值為的,通常包括空字符串這五種常見的對象。各自都是孤家寡人,不用拖家?guī)Э诘?,一人吃飽全家不餓。 舉個簡單的栗子: A和B兩個人肚子都很餓,要去吃飯。A已打電話到飯店預約位置,B則打算下班后考察下再做決定。對于飯店來說,A基本上就是他的客戶了,只不過還沒見到人來,定為null(畢竟交易還沒產(chǎn)生),而對飯店來說,B是誰啊,他們根本沒聽到過這個人,為undefine...

    sf190404 評論0 收藏0
  • JS基礎undefinednull區(qū)別分析

    摘要:例如自定義局部變量作用域上的引用比較作用域上的引用比較其中,定義局部變量時,其初始值會是對屬性值的引用。新定義的局部變量存在與該函數(shù)的作用域上。這就是許多前端框架為什么常常要自己定義一個局部變量的原因 在javascript開發(fā)中,開始學習js的時候時常困惑我的就是null和undefined的區(qū)別,所以很想總結下我對這兩個的理解學習過js的同學都知道: null==undefined...

    zhigoo 評論0 收藏0
  • 談談javascript語法里一些難點問題(一)

    摘要:引子前不久我建立的技術群里一位問了一個這樣的問題,她貼出的代碼如下所示執(zhí)行結果如下所示第一個第二個這是一個令人詫異的結果,為什么第一個彈出框顯示的是,而不是呢這種疑惑的原理我描述如下一個頁面里直接定義在標簽下的變量是全局變量即屬于對象的變量 1) 引子 前不久我建立的技術群里一位MM問了一個這樣的問題,她貼出的代碼如下所示: var a = 1; function hehe...

    huaixiaoz 評論0 收藏0
  • JavaScript中“數(shù)組也是對象”

    摘要:數(shù)組也是對象簡單來說,對象就是一系列屬性名值對,即某個屬性名對應某個屬性值當我們遍歷對象時,不在對象中的屬性當然不會被訪問到。我們知道操作符用于刪除對象中某個屬性,而中,數(shù)組就是對象的一種,數(shù)組的索引就是其屬性名,對應的項就是屬性值。 先說結論吧: 數(shù)組的map方法在IE9以下是不支持的,因此需要寫一個兼容方法來實現(xiàn)此行為,在實現(xiàn)兼容的時候:必須注意:對于數(shù)組中被刪除(dele...

    Sike 評論0 收藏0
  • javascript 基礎類型轉(zhuǎn)換

    摘要:類型轉(zhuǎn)換和表示一個空對象。如果有其他類型想轉(zhuǎn)換為或者類型,直接賦值就可以了。都能隱式的把數(shù)據(jù)類型轉(zhuǎn)為類型。。。時間時間二數(shù)字類型轉(zhuǎn)換為字符串默認是進制是一個對象類型,所以其他類型轉(zhuǎn)化為通常都是。 前言 javaScript是一門可以自由進行數(shù)據(jù)類型轉(zhuǎn)換的編程語言,類型轉(zhuǎn)換是javaScript很重要的特色(坑點很多!!!),大家想以后寫出更多嚴謹?shù)拇a(少出一些莫名其妙的Bug),還是...

    timger 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<