如果变量foo
未定义,通常我可以执行以下操作:
!foo;
foo === undefined;
foo !== 'some value';
但是,我现在正在处理的代码库中有一些东西似乎指示浏览器的解释器对除此之外的未定义变量的任何操作抛出异常:
typeof foo !="undefined";
我正在使用通常使用的浏览器(Chrome 和 Firefox)。但这次我将在中间进行这个项目,而不是从头开始。这是一个使用 Backbone.js、下划线、车把、jQuery、yepnope 的 dJango 项目。
这种行为可能是由于指令"use strict"
出现在全局命名空间中的某处吗?我在项目中搜索了文本字符串“use strict”,并在一些似乎来自 twitter 的代码中找到了它:
文件:bootstrap.js 脚本.js 来自:http://twitter.github.com/bootstrap/javascript.html#transitions
我还在 json2 文件中找到了它。但是我很确定这个文件在我上次使用它时没有给我带来问题:
文件:json2.js 来自:http://www.JSON.org/json2.js
据我所知,这甚至不是由在某处包含“使用严格”引起的......
有任何想法吗?
非常感谢!