最近在自行研究JavaScript以及相關的知識,由於沒有在網上能找到非常細緻的相關知識,所以購買了JavaScript權威指南一書(第六版)。不得不說,人家淘寶團隊真是厲害,厚厚一大本,翻譯的非常不錯,更好的是內容非常詳細。值得有經驗的開發人員觀看。對於這個書的贊美就不說辣麽多了,回到正題。 在之 ...
最近在自行研究JavaScript以及相關的知識,由於沒有在網上能找到非常細緻的相關知識,所以購買了JavaScript權威指南一書(第六版)。不得不說,人家淘寶團隊真是厲害,厚厚一大本,翻譯的非常不錯,更好的是內容非常詳細。值得有經驗的開發人員觀看。對於這個書的贊美就不說辣麽多了,回到正題。
在之前的JavaScript開發中,經常見到的一個關鍵字 null 我想程式員們都會對它絕對眼熟,不管是資料庫還是前端後臺, null 絕對是一個非常常見的關鍵字。
null是JavaScript語言的關鍵字,他表示的是一個特殊值,常常用來描述 “空值” 。對null執行 tyeof 預算,結果返回字元串 “object” ,也就是說,可以將null認為是一個特殊的對象值,含義是 “非對象” 。
但實際上,通常認為null 是它 自有類型的唯一一個 成員 。 他可以表示數字、字元串、和對象是“無值”的。
JavaScript 還有第二個值來表示 “空值” ---undefined 用未定義的值表示 更深層次的“空值” 。它是變數的一種取值,表示變數沒有初始化,如果要查詢對象屬性或數組元素的值時返回 unfinished。引用沒有提供實參的函數形參的值也只會得到 undefined 。
undefined是預定義的全局變數(它和null不一樣,他不是關鍵字),它的值就是“未定義” 。在ECMScripgt 3中,undefined是可讀/寫的變數可以給它賦任意值。 這個錯誤在ECMScript 5中進行了修正,在這個版本中的undefined只是可讀的,如果使用typeof 運算符得到 undefined 的類型,則返回“undefined”, 表明這個值是這個類型的唯一成員。
儘管 null 和 undefined 是不同的,但它們都表示“值的空缺” ,兩者往往可以互換,判斷相等的運算符 “==” 認為兩者是相等的 (要使用嚴格的相等運算符 “==” 來區分它們)。 在希望值是 布爾類型 的地方它們的值都是假值。 和false 相類似。 null和undefined 都不包含任何實行和方法 。 實際上,使用“.”和“[]”來存取這兩個值得成員方法都會產生一個類型錯誤。
你或許認為 undefined 是表示系統級的、出乎意料的或類似錯誤的值的空缺, 而null是表示程式級的、正常的或在意料之中的值的空缺。 如果你想將它們賦值給變數或者屬性,或將它們作為參數傳入函數,最佳選擇是使用null。