摘要:語言設計的不嚴謹,有時候很容易把人給搞暈,比如說這個變量有效性判斷。表示沒有對象,即該處不應該有值。作為對象原型鏈的終點。典型用法是變量被聲明了,但沒有賦值時,就等于。實際上,中作為的條件的時候,都被認為是。
JavaScript 語言設計的不嚴謹,有時候很容易把人給搞暈,比如說這個變量有效性判斷。
先舉幾個例子:
想要理解為什么得出上面的結果,首先得明白 undefined 和 null 在 JavaScript 中所表示的不同含義。
這里借用下阮一峰老師博客中的一個結論:
null和undefined基本是同義的,只有一些細微的差別。
null表示"沒有對象",即該處不應該有值。典型用法是:
(1) 作為函數的參數,表示該函數的參數不是對象。
(2) 作為對象原型鏈的終點。undefined表示"缺少值",就是此處應該有一個值,但是還沒有定義。典型用法是:
(1)變量被聲明了,但沒有賦值時,就等于undefined。
(2) 調用函數時,應該提供的參數沒有提供,該參數等于undefined。
(3)對象沒有賦值的屬性,該屬性的值為undefined。
(4)函數沒有返回值時,默認返回undefined。
在 Java 中,if 條件中必須使用 boolean 表達式, 所以使用 JavaScript 時,也會習慣性的認為如此。實際上,JavaScript 中 null,undefined,0,"",false 作為 if 的條件的時候,都被認為是 false 。
所以,在判斷變量時,可以用以下幾種方式:
精確判斷一個變量是否為 undefined
精確判斷一個變量是否為 null
判斷一個變量是否為 null 或 undefined
判斷值是否有效, 可以直接在if表達式中使用變量名稱, 我常用來判斷一個輸入框值是否有效(注意: 如果變量值為0, 會被當作無效)
掃描二維碼,關注我。
內容大多會是后端技術、前端工程、DevOps,偶爾會有一些大數據相關,會推薦一些好玩的東西。希望你會喜歡~
一切,源于喜歡。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/79245.html
摘要:值的比較只進行值的比較會進行數據類型的轉換。只要在當前實例的原型鏈上,我們用其檢測出來的結果都是。但檢測與不一樣,還可以處理基本數據類型的檢測。 showImg(https://segmentfault.com/img/remote/1460000016733921); 一、JavaScript有幾種類型的值? Javascript有兩種數據類型,分別是基本數據類型和引用數據類型。其中...
摘要:值的比較只進行值的比較會進行數據類型的轉換。只要在當前實例的原型鏈上,我們用其檢測出來的結果都是。但檢測與不一樣,還可以處理基本數據類型的檢測。 showImg(https://segmentfault.com/img/remote/1460000016733921); 一、JavaScript有幾種類型的值? Javascript有兩種數據類型,分別是基本數據類型和引用數據類型。其中...
摘要:值的比較只進行值的比較會進行數據類型的轉換。只要在當前實例的原型鏈上,我們用其檢測出來的結果都是。但檢測與不一樣,還可以處理基本數據類型的檢測。 showImg(https://segmentfault.com/img/remote/1460000016733921); 一、JavaScript有幾種類型的值? Javascript有兩種數據類型,分別是基本數據類型和引用數據類型。其中...
摘要:中有五種基本數據類型,以及一種復雜引用類型數據類型,中還細分了很多具體的類型,比如等等中又新增了一種類型。類型的數值范圍是,超出這個范圍的值為,可以使用函數來判斷數值是否在范圍內。 ECMAScript5中有五種基本數據類型:Undefined,Null,Boolean,Number,String,以及一種復雜(引用類型)數據類型:Object,Object中還細分了很多具體的類型,比...
閱讀 1508·2021-10-11 10:59
閱讀 1881·2021-09-09 11:36
閱讀 1393·2019-08-30 15:55
閱讀 1329·2019-08-29 11:20
閱讀 3064·2019-08-26 13:39
閱讀 1468·2019-08-26 13:37
閱讀 1960·2019-08-26 12:11
閱讀 1324·2019-08-23 14:28