【发布时间】:2012-07-21 23:59:12
【问题描述】:
如果变量foo 未定义,通常我可以这样做:
!foo;
foo === undefined;
foo !== 'some value';
但是,我现在正在处理的代码库中有一些东西似乎指示浏览器的解释器对除此之外的未定义变量的任何操作抛出异常:
typeof foo !="undefined";
我使用的浏览器与我通常使用的浏览器相同(Chrome 和 Firefox)。但这次我将在中间进行这个项目,而不是从头开始。这是一个使用 Backbone.js、下划线、车把、jQuery、yepnope 的 dJango 项目。
这种行为可能是由于指令"use strict" 出现在全局命名空间中的某处吗?我在项目中搜索了文本字符串“use strict”,并在一些似乎来自 twitter 的代码中找到了它:
我也在 json2 文件中找到了它。但是,我很确定上次使用该文件时没有给我带来问题:
文件:json2.js 来自:http://www.JSON.org/json2.js据我所知,这甚至不是由在某处包含“use strict”引起的......
有什么想法吗?
非常感谢!
【问题讨论】:
-
NITPICK:typeof 是一个运算符,而不是一个方法调用。它不需要
()。 -
@epascarello - 已修复,谢谢!
标签: javascript twitter-bootstrap undefined-behavior use-strict