日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

null 和 undefined 的区别

發布時間:2023/12/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 null 和 undefined 的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概念

undefined?表示未定義,就是應該有值但是還沒有賦值,連null的值都沒有賦予

null?代表空值,空引用。

二、區別

1.??null 和 undefined 雖然值的結果是相等的,但是其所代表的語義是完全不一樣的(==是相等的)。

? undefined 代表了某個變量完全不存在,在內存中完全能不存在這個標識符所指向的地址;

? null 代表了內存中是存在這個變量的,只是我在某些情況下需要把這個變量原本的值給覆蓋了,將它設置為一個空。

2.??null 轉為數值是 0 ;? undefined 轉為數值是 NAN(not a number)。

3.??null 通過 typeof 判斷類型的時候結果的輸出是 object ; 而 undefined 的類型是 undefined 。


那么為什么 typeof null 是 object ?

null 和 undefined 都是js語言的基礎數據類型, 都是原始值類型,但是 typeof null 是 object ,是因為不同的對象在底層都表現為二進制,在? JavaScript? 中二進制前三位都為 0 的話會被判斷為 object? 類型,null 的二進制全部都為 0 ,前三位自然也是 0 ,所以執行 typeof 值會返回 object 。


4.??null 是 js 語言的關鍵字,是不允許用戶用來作為標識符聲明變量的,但是 undefined 可以,undefined 不是關鍵字。

在 node 環境中,我們聲明的 undefined 會將原本的 undefined 覆蓋的,但是在瀏覽器環境中不會,是因為瀏覽器中的 undefined 是直接被使用 Object.defineProperty 定義在了全局對象 window 上,默認就已經被配置成為了:值不可修改并且不可以被重新進行配置。

?三、null 和 undefined分別在實際項目中出現的場景有哪些

1、 undefined

? ?a.?變量被聲明了,但是沒有被賦值;

? ?b.?調用函數的時候,應該給函數傳參卻沒有給函數傳這個參數打印出來就是 undefined;

? ?c.?訪問一個對象中沒有的屬性;

? ?d.?函數沒有返回值時,默認就會返回undefined。

2、 null

? ?a.作為對象原型鏈的終點出現;

? ?b.當我們訪問一個不存在的dom節點的時候。

?

總結

以上是生活随笔為你收集整理的null 和 undefined 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。