亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中null和undefined的區別是什么

發布時間:2022-01-19 15:51:53 來源:億速云 閱讀:116 作者:kk 欄目:開發技術

這篇文章給大家介紹JavaScript中null和undefined的區別是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

網上有很多關于null和undefined區別的論述,看似講了很多知識,但又好像沒什么用,無法指導實際開發。結論大多是null和undefined基本一樣,只有細微差別,是歷史設計錯誤的產物,甚至應該把其中一個從語言中去掉。

實際上,這兩個值還是有很大的區別的,并且這兩個值還有存在的意義。

undefined

undefined代表未定義,也就是不存在的意思。也可以換個角度,就是應該有值,但是還沒賦值,連null值都沒有賦予。

var foo;
console.log(foo); // undefined
foo = null;
console.log(foo); // null
console.log(bar); // Uncaught ReferenceError: bar is not defined

null

null則代表有值,是存在的,但是為空值。空值不是不存在,而是有一個叫做空值的值。在語言層面,null是object,是一種特殊的空對象。如果把一個變量賦予null,則該變量原先指向的對象可以被GC回收,釋放內存空間。當然也可以認為null是null類型,這不影響實際的意義。

console.log(typeof(null)); // object
console.log(typeof(undefined)); // undefined

undefined和null類型

在 TypeScript 中,有undefined和null類型,這兩種類型都只有唯一一個值,就是它們自己。并且是其它所有類型的子類型,可以賦值給任何類型。

let u: undefined = undefined;
let n: null = null;
let num: number = u;

實際應用

上面說了那么多,好像除了增加復雜性之外,并沒有什么實際的用處。

下面用代碼演示這兩種類型的實際用法,可以體會不存在和空值具體有什么區別和用處:

var foo = {a:1, b:2};
console.log(JSON.stringify(foo)); // {"a":1,"b":2}
foo = {...foo, a:null};
console.log(JSON.stringify(foo)); // {"a":null,"b":2}
foo = {...foo, a:undefined};
console.log(JSON.stringify(foo)); // {"b":2}

從上面的代碼可以看到,把一個對象的屬性設置成undefined后,這個屬性就消失了、不存在了。而設置成null,這個屬性還是存在,只不過是null值。

如果你想讓對象中某個屬性消失,那么就把它設置成undefined吧。這也許是undefined和null同時存在的最大的意義。

JavaScript是什么

JavaScript是一種直譯式的腳本語言,其解釋器被稱為JavaScript引擎,是瀏覽器的一部分,JavaScript是被廣泛用于客戶端的腳本語言,最早是在HTML網頁上使用,用來給HTML網頁增加動態功能。

關于JavaScript中null和undefined的區別是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海阳市| 启东市| 大英县| 张北县| 博野县| 嵩明县| 内黄县| 东海县| 乡宁县| 巴南区| 化德县| 潼南县| 河东区| 张家界市| 霸州市| 普定县| 大连市| 齐河县| 沙湾县| 香河县| 玉田县| 长宁区| 潢川县| 万源市| 德昌县| 台南县| 武功县| 玛曲县| 庆阳市| 万宁市| 竹溪县| 上虞市| 平泉县| 西丰县| 台湾省| 开远市| 翁源县| 辽中县| 两当县| 黎川县| 永平县|