繁体   English   中英

Javascript变量或导致IE错误的新函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM