我的代码中有这些行:
var Y = 1;
var Z = X || Y;
在某些情况下 - X 未定义,而 Y 保留值。
虽然我发誓我认为它以前有效..
我突然得到“Uncaught ReferenceError: X is not Defined”。
这不是 ||运营商是否打算支持这种情况?
它似乎确实适用于:
var X = X || 1;
当 X 以前从未定义过时..
这是由于某种 JS 解析限制吗?我很想知道。
谢谢
最佳答案
I suddenly get "Uncaught ReferenceError: X is not defined".
在使用 var
(或函数参数列表)声明变量或写入变量之前,您尝试读取变量。
Wasn't the || operator meant to support such cases?
没有。
It does seem to work for
var X = X || 1;
您有一个 var X
,因此 X
变量在该实例中声明。
与 var Z = X || Y;
您正在声明 Z
,但不是 X
(Y
已在上一行声明)。
关于javascript - Uncaught ReferenceError : X is not defined - JS parsing limitation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29625331/