ECMAScript 之如何判斷 undefined ?

栏目: JavaScript · 发布时间: 7年前

内容简介:ECMAScript 5

undefined 是 ECMAScript 很特殊的存在,實務上有多種判斷方式。

Version

ECMAScript 5

Undefined

undefined 有兩種可能:

  1. 有宣告 variable,但還沒給定初始值
  2. 還未宣告 variable

=== undefined

ECMAScript 之如何判斷 undefined ?

foo 只有宣告,但沒有給定初始值,這種 undefined 可用 === undefined 抓到。

ECMAScript 之如何判斷 undefined ?

foo 連宣告都沒有,雖然也是 undefined ,但 === undefined 抓不到。

=== undefined 只能抓到有定義,但尚未初始化的 variable

typeof === ‘undefined’

ECMAScript 之如何判斷 undefined ?

foo 只有宣告,但沒有給定初始值,這種 undefined 可用 typeof 抓到,但回傳是 undefined string,不是 undefined value。

ECMAScript 之如何判斷 undefined ?

foo 連宣告都沒有,也是 undefined ,但 typeof 也可順利抓到 undefined

typeof 可以攔截到所有的 undefined ,無論是有宣告的 variable 但尚未初始化,或者根本沒有宣告的 variable

Falsy Value

ECMAScript 之如何判斷 undefined ?

undefined 是 Falsy Value,因此也可以使用 ! 攔截到 undefined

false0''NaNnullundefined 都是 Truthy Value,因此也可能同時攔截到非 undefined

ECMAScript 之如何判斷 undefined ?

foo 連宣告都沒有,也是 undefined ,但 Falsy Value 無法使用。

Object.prototype.toString()

ECMAScript 之如何判斷 undefined ?

foo 只有宣告,但沒有給定初始值,這種 undefined 也可用 Object.prototype.toString() 抓到,但要判斷的是 Undefined string,第一個字母 U 要大寫。

foo 要借用 Object.prototype.toString() ,因此使用 call()foo 傳進去,但 toString() 回傳為 [Object Undefined] string,因此要再使用 slice() 加工取得 Undefined

ECMAScript 之如何判斷 undefined ?

foo 連宣告都沒有,也是 undefined ,但 Object.prototype.toString() 抓不到。

Conclusion

  • 只有 typeof 可攔截到所有的 undefined ,其判斷為 undefined string
  • Falsy Value 雖然方便,但可能會攔截到 undefined 以外的值,要小心使用
  • Object.prototype.toString() 會傳出比 typeof 更詳細的型別資訊

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

推荐系统

推荐系统

[奥地利] Dietmar Jannach、Markus Zanker、Alexander Felfernig、Gerhard Friedrich / 蒋 凡 / 人民邮电出版社 / 2013-6-25 / 59.00元

编辑推荐: 通过对本书的学习,读者不仅可以全面系统地了解该领域的基础原理,还能试验如何搭建一套真正的推荐系统。 —— 百度主任架构师、百度技术委员会主席 廖若雪 本书比较全面地介绍了推荐系统涉及的相关知识点,很适合对于推荐系统感兴趣的相关人员作为入门教程,目前能够系统全面介绍相关技术的中文书籍还显得匮乏,相信这本译著对于缓解这种情况大有裨益。 ——新浪微博数据挖掘技术专家 ......一起来看看 《推荐系统》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具