ECMAScript 之如何判斷 undefined ?
栏目: JavaScript · 发布时间: 5年前
内容简介:ECMAScript 5
undefined
是 ECMAScript 很特殊的存在,實務上有多種判斷方式。
Version
ECMAScript 5
Undefined
undefined
有兩種可能:
- 有宣告 variable,但還沒給定初始值
- 還未宣告 variable
=== undefined
foo
只有宣告,但沒有給定初始值,這種 undefined
可用 === undefined
抓到。
foo
連宣告都沒有,雖然也是 undefined
,但 === undefined
抓不到。
=== undefined
只能抓到有定義,但尚未初始化的 variable
typeof === ‘undefined’
foo
只有宣告,但沒有給定初始值,這種 undefined
可用 typeof
抓到,但回傳是 undefined
string,不是 undefined
value。
foo
連宣告都沒有,也是 undefined
,但 typeof
也可順利抓到 undefined
。
typeof
可以攔截到所有的 undefined
,無論是有宣告的 variable 但尚未初始化,或者根本沒有宣告的 variable
Falsy Value
undefined
是 Falsy Value,因此也可以使用 !
攔截到 undefined
。
false
、 0
、 ''
、 NaN
、 null
與 undefined
都是 Truthy Value,因此也可能同時攔截到非 undefined
foo
連宣告都沒有,也是 undefined
,但 Falsy Value 無法使用。
Object.prototype.toString()
foo
只有宣告,但沒有給定初始值,這種 undefined
也可用 Object.prototype.toString()
抓到,但要判斷的是 Undefined
string,第一個字母 U
要大寫。
foo
要借用 Object.prototype.toString()
,因此使用 call()
將 foo
傳進去,但 toString()
回傳為 [Object Undefined]
string,因此要再使用 slice()
加工取得 Undefined
foo
連宣告都沒有,也是 undefined
,但 Object.prototype.toString()
抓不到。
Conclusion
- 只有
typeof
可攔截到所有的undefined
,其判斷為undefined
string - Falsy Value 雖然方便,但可能會攔截到
undefined
以外的值,要小心使用 -
Object.prototype.toString()
會傳出比typeof
更詳細的型別資訊
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
工程问题C++语言求解
Delores M.Etter、Jeanine A.Ingber / 冯力、周凯 / 机械工业出版社 / 2014-8 / 79元
本书介绍了如何利用ANSIC++编程语言以基于对象的编程方式来解决工程问题。书中引用了大量来自于不同工程、科学和计算机科学领域的示例,是一本理论和实践结合紧密的教材。针对C++基本语法的各个部分,由浅入深地进行讲解。每讲解一部分基础知识,同时会结合多个相关实例,实例内容详实,紧贴所讲内容,使读者能够立刻对所学知识进行练习,实战性强。一起来看看 《工程问题C++语言求解》 这本书的介绍吧!