ECMAScript規範為什麼要定義Undefined基本資料型別 為什麼不用null來取代undefined作為宣告了但未初始化值的變數的值

時間 2021-05-31 19:59:48

1樓:沈嶸

如果你本來就宣告了乙個變數,那麼給這個變數賦予 Undefined 還是 Null 來表示初始化與否,則你個人的程式設計習慣(雖然我認為這種情況一般用 Null 比較好)。

如果你自己嚴格遵守「宣告了但是未初始化」就用 Null,那麼 Undefined 就可以被用來確實判斷變數是否宣告與否,或者物件屬性生命與否的標記。

ECMAScript 定義了這兩種狀態,確實是因為存在著兩種不同的可能性:宣告了但是沒有確定初始值和沒有宣告。雖然在我們的程式中往往不會那麼需要真的判斷這兩種狀態。

在 CoffeeScript 中,乙個變數是 Undefined 還是 Null 的判斷被精簡為乙個 "?" 操作符。

另外,在傳統的關聯式資料庫中, NULL 是資料庫欄位的可能值,因此 JS 的 Null 也可以被直接對應到資料庫欄位的 NULL,而 Undefined 則自然用來表示生命與否。

總之,我個人會盡量避免 Undefined 和 Null 表示不同的狀態,除非迫不得已。但是確實有人會依賴這兩個不同的狀態來寫程式。

為什麼叫醫師規範化培訓?

人菜癮大與民同樂 幾百年前,大明三大才子之一的楊慎早就總結了,而且你肯定也很熟悉 沒錯就是老三國主題曲 臨江仙滾滾長江東逝水,浪花淘盡英雄。是非成敗轉頭空。青山依舊在,幾度夕陽紅。白髮漁樵江渚上,慣看秋月春風。一壺濁酒喜相逢。古今多少事,都付笑談中 哎,是非成敗轉頭空 人生於世,不過滄海一粟 何須過...

物理學為什麼要滿足規範不變性?

CosmicSymphony 座標變換又可以理解為座標基矢的變換,我們可以稱之為外部空間的的基矢變換。這樣看,規範對稱性可以理解為物理 作用量 在對稱群表示的內部空間基矢變換下不變。引力和其他三種相互作用都可以用類似的語言引出。我感覺對稱性就是客觀物理存在不因人為的基矢選取,人為的分量描述的變換而變...

軟體的流氓行為 什麼時侯才會得到規範?

野狐禪 VHDwin10裸奔路過,我通常把裝有什麼xx防毒xx衛士xx管家xx助手xx大師xx數字的計算機定義為中毒。順便說一下,本人建議國家強制要求初中加入計算機操作常識課,該課程不及格不得公升學,不得畢業,不得參加工作。 天下沒有免費的午餐,要想這種亂象得到治理,還得推進正版化。各種資源都是要錢...