栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

检测未定义的对象属性

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

检测未定义的对象属性

检查属性值是否为特殊值的通常方法

undefined
是:

if(o.myProperty === undefined) {  alert("myProperty value is the special value `undefined`");}

要检查对象是否实际上没有这样的属性,并因此

undefined
在尝试访问它时默认情况下将返回:

if(!o.hasOwnProperty('myProperty')) {  alert("myProperty does not exist");}

检查与标识符关联的值是否为特殊值

undefined
或者 尚未声明该标识符。注意:此方法是引用
未声明的
undefined
标识符(注意:与的值不同)的唯一方法,且不会出现早期错误:

if(typeof myVariable === 'undefined') {  alert('myVariable is either the special value `undefined`, or it has not been declared');}

在ECMAscript 5之前的Javascript版本中,全局对象上名为“ undefined”的属性是可写的,因此,

foo ===undefined
如果不小心重新定义了简单检查,其行为可能会出乎意料。在现代Javascript中,该属性为只读。

但是,令人惊讶的是,在现代Javascript中,“未定义”仍然不是关键字,因此函数内的变量可以命名为“未定义”并掩盖了全局属性。

如果您担心这种情况(不太可能),可以使用void运算符获取特殊

undefined
值本身:

if(myVariable === void 0) {  alert("myVariable is the special value `undefined`");}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392745.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号