null和undefined

      最近在自行研究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」, 代表這個值是這個類型的惟一成員。spa

        儘管 null 和 undefined 是不一樣的,但它們都表示「值的空缺」 ,二者每每能夠互換,判斷相等的運算符  「==」  認爲二者是相等的  (要使用嚴格的相等運算符  「==」  來區分它們)。 在但願值是  布爾類型  的地方它們的值都是假值。 和false 相相似。 null和undefined 都不包含任何實行和方法 。 實際上,使用「.」和「[]」來存取這兩個值得成員方法都會產生一個類型錯誤。翻譯

       你或許認爲 undefined 是表示系統級的、出乎意料的或相似錯誤的值的空缺, 而null是表示程序級的、正常的或在乎料之中的值的空缺。 若是你想將它們賦值給變量或者屬性,或將它們做爲參數傳入函數,最佳選擇是使用null。對象

相關文章
相關標籤/搜索