[译] 怎样判断一个变量是否为undefined

 我来答
羊村丶浈
推荐于2016-04-13 · 超过83用户采纳过TA的回答
知道答主
回答量:140
采纳率:100%
帮助的人:150万
展开全部
值可以是undefined。但变量只能有两种情况:声明或没声明。
2. 变量一旦声明即都被初始化为undefined值,直到变量被赋予了其他值。
3. 没有被声明的变量不具备undefined值,它们压根就不存在。引用一个不存在的变量将抛出ReferenceError异常,除非你使用的是typeof操作符。
4. typeof操作符将对下列两种变量返回undefined: 没被声明的变量,和声明了但还未赋值的变量。
5. null == undefined,但是 null !== undefined。双等号会隐式地调用类型转换。
6. 不要试图用将变量与undefined比较。undefined并不是Javascript关键字。所以如果有人重定义了undefined,你期望的比较就失效了。(当然,你可以在本地作用域上声明一个名字为"undefined"的变量,这样"undefined"就是undefined了)
7. 对于object类型变量,访问其没有声明的属性将返回undefined。如果调用(calling)其没有声明的子方法,将会抛出异常;但如果仅仅是访问(accessing),则不会抛异常(只要这个object存在)。
8. 因为第(4)点的关系,仅使用typeof操作符并不足以区分(a)没被声明的变量和(b)声明但尚未赋值的变量。我们可以使用in操作符,或者使用Object.hasOwnProperty()方法,后者将过滤掉继承自原型链上的父节点的属性。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式