我想定义一个变量为默认值,如果尚未定义,但发现一个奇怪的问题。Javascript变量范围undefined
var x = x || {}
作品而x = x || {}
给出了一个错误。
萤火虫输出。
>>> a = a || {};
ReferenceError: a is not defined
[Break On This Error]
a = a || {};
with(_... {}; }; (line 2)
>>> var b = b || {};
undefined
>>> b;
Object {}
>>> a;
ReferenceError: a is not defined
[Break On This Error]
为什么第一个出现错误,而第二个似乎经历了。
http://stackoverflow.com/questions/1470488/difference-between-using-var-and-not-using-var-in-javascript的副本? – 2012-08-12 16:56:17
这个答案将帮助你http://stackoverflow.com/a/1470494/205585 – 2012-08-12 16:56:53
有这个真正的重复,这些不是其中之一。 – Esailija 2012-08-12 17:00:24