### 🔍小範例大學問👊 # [<font color="#f00">JavaScript</font>] undefined 和 null的異同 ## 1. 基本定義 * undefined:未定義,比如變數無賦予值的話該變數預設就會是 undefined。 * null:空值,是讓開發者用來宣告變數沒有值。 ## 2. 型別測試 ```javascript= typeof null // 'object' typeof undefined // 'undefined' ``` 💬說明:null顯示的是型別是object(為什麼是物件?可以把他想成,回傳一個空對象來看);而undefined顯示的型別就是undefined。 ## 3. Boolean值判斷 ```javascript= console.log(null == undefined); //true console.log(null === undefined); //false ``` 💬說明:雙等式時,null和undefined是true,但加上型別判斷的三等式時,理所當然出現了false。 ## 💡 有趣小測試 ```javascript= let a = { myname:"peter", isHome:true }; console.log(typeof null);//object console.log(typeof a);//object ``` 💬說明:null 和 a 都是物件型別,所以來計算看看。 ```javascript= console.log(null + "123");//null123 console.log(a + "123");//[object Object]123 a.age = 18; console.log(a);//{myname: 'peter', isHome: true, age: 18} console.log(a + "123");//[object Object]123 ``` 說明:很有趣的是,null雖然是物件,但自動轉型字串相加時,會以null做加法;而 a 物件會以[object Object]的形式做字串相加,不管屬性有幾項,a 仍然是呈現[object Object]。 ## <font color="#f00">📌總整理</font> | undefined和null相似處 | | -------------------------------------| | a.都没有屬性和方法,也不能額外添加屬性方法。 | | b.皆為Falsy Value(Boolean判斷時為false) [*MDN文檔說明*](https://developer.mozilla.org/en-US/docs/Glossary/Falsy) | | c.皆為原始型別(Primitive Type) | --- #### 參考文章 [Javascript中undefined和null的差異](https://snh90100.medium.com/javascript%E4%B8%ADundefined%E5%92%8Cnull%E7%9A%84%E5%B7%AE%E5%88%A5-1f48e9be5e02)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up