javascript - Uncaught ReferenceError : X is not defined - JS parsing limitation?

标签 javascript

我的代码中有这些行:

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/

相关文章:

javascript - 通过单击 AngularJs 中的按钮用输入文本框替换标签,反之亦然

javascript - 实现eccjs库时出错

javascript - 无法使用 SweeAlert (angular-sweetalert) 更新 AngularJs 中的 View 调用两次更新 View 。为什么?

javascript - React Native - Listview下拉刷新多次触发

javascript - 如何禁用 UI 日历中的先前日期?

javascript - 使用图层和混合模式制作的 Paper.js 橡皮擦工具

javascript - 在单元格编辑时获取 extjs 中的行数据

javascript - 将 <div> 的背景颜色设置为里面的十六进制文本

javascript - 播放 youtube 视频时隐藏 div

javascript - 使用map循环遍历数组时返回null而不是JSX