前端小知识点(1):undefined和null区别
生活随笔
收集整理的這篇文章主要介紹了
前端小知识点(1):undefined和null区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
一、奇怪點
二、歷史原因
三、具體區別
四、代碼演示
五、運行結果
一、奇怪點
有點奇怪的是,JavaScript語言居然有兩個表示"無"的值:undefined和null。這是為什么?
二、歷史原因
1995年JavaScript誕生時,最初像Java一樣,只設置了null作為表示"無"的值。根據C語言的傳統,null被設計成可以自動轉為0。
但是,JavaScript的設計者,覺得這樣做還不夠,主要有以下兩個原因。
1. null像在Java里一樣,被當成一個對象。但是,JavaScript的數據類型分成原始類型(primitive)和合成類型(complex)兩大類,作者覺得表示"無"的值最好不是對象。
2. JavaScript的最初版本沒有包括錯誤處理機制,發生數據類型不匹配時,往往是自動轉換類型或者默默地失敗。作者覺得,如果null自動轉為0,很不容易發現錯誤。
因此,作者又設計了一個undefined。
這里注意:先有null后有undefined,出來undefined是為了填補之前的坑。
三、具體區別
JavaScript的最初版本是這樣區分的:null是一個表示"無"的對象(空對象指針),轉為數值時為0;undefined是一個表示"無"的原始值,轉為數值時為NaN。
四、代碼演示
console.log( 1 + null ); console.log( 1 + undefined );五、運行結果
?
總結
以上是生活随笔為你收集整理的前端小知识点(1):undefined和null区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QT连接PostSql (小白教程)
- 下一篇: QT 网络编程之https