undefined https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined从技术上讲可以重新定义,因此它不是保留字。因此,我通常在匿名函数中编写代码,强制undefined
是一个未定义的变量,如下所示:
(function (undefined) {
"use strict";
var o = {
test: "testvalue"
};
if (o.test === undefined) {
// Do stuff here
} else {
// Do other stuff there
}
}());
然而,JSLint http://www.jslint.com/提到以下错误:
Problem at line 1 character 15: Expected an identifier and instead saw 'undefined' (a reserved word).
为什么 JSLint 会抱怨undefined
作为保留字,什么时候代码可以任意重新定义变量?我知道你可以使用typeof x === "undefined"
;我只是想看看为什么这个方法行不通。
'undefined' 被声明为全局对象的不可变属性ECMA-262 第 5 版第 15.1.1.3 节 http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262%205th%20edition%20December%202009.pdf,发表于 2009 年 12 月。
通过在函数中使用“未定义”作为参数名称,您试图使用传递给函数的任何内容来改变它。所以从技术上来说,错误在于浏览器采用该标准的速度很慢,而 JSLint 是正确的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)