[英]Javascript variable or new function causing errors in IE
大家好,我对Internet Explorer中的此声明有疑问,我想知道是否有更明智的方法?
var NEWVARIABLE = NEWVARIABLE || {};
NEWVARIABLE.Tools = NEWVARIABLE.Tools || {};
它给我的错误是NEWVARIABLE
不存在
您不能使用(或测试)未定义的变量。 我最初以为这就是您在执行以下语句
var NEWVARIABLE = NEWVARIABLE || {};
但是,多亏Fabrício,我才意识到var声明被吊起了(移到了script标签的顶部,因此在命中该声明时就已经声明了。
测试变量是否要使用typeof === 'undefined'
来查看变量是否存在的不太混乱的方法
var NEWVARIABLE;
if (typeof NEWVARIABLE === 'undefined') {
NEWVARIABLE = {};
}
检查属性时可以使用相同的样式,不必对属性使用typeof
test,即使未定义属性也可以对其进行测试。
您已经接受了一个答案,但其中包含一个误导性陈述:
您不能使用(或测试)未定义的变量。 那就是你在做什么
声明了变量,所以它不是您在做什么。
在OP中,代码为:
> var NEWVARIABLE = NEWVARIABLE || {};
> NEWVARIABLE.Tools = NEWVARIABLE.Tools || {};
不包含语法错误,它将引发错误的唯一情况是:NEWVARIABLE已经存在,并且具有Tools属性,该属性在尝试访问或分配给它时会引发错误(某些主机对象可能会发生这种情况)。
如果先前已为NEWVARIABLE
分配了本机对象或原始值,则尽管结果可能不是您所期望的,它将不会引发错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.