我正在 chrome 的控制台中进行一些 javascript 编码。
当我这样做时:
console.log(x);
let x;
它给出了“ReferenceError:x未定义”
但是当我运行以下代码时:
let x;
console.log(x);
它控制台“未定义”。
Q1:为什么会发生这种情况?
Q2:当我在名为 OneCompiler 的在线 js 编译器中运行第一个代码时,它没有给出引用错误,但给出了“无法在初始化之前访问 x”。为什么两个编译器给出不同的错误?
在您的第一个代码中,您在
console.log(x)
存在之前调用 x
,因为您首先在 console.log(x)
之后定义它。所以没有提及 x
。
在第二个代码中,您定义
x
,然后调用 console.log(x)
,以便您的 x
已经存在,并且不会出现错误。但您还没有为您的x
分配任何值。所以 x 的值为“undefined
”。在 javascript 中总是这样。如果声明变量而不初始化它,则该变量的值为“undefined
”
我希望这有帮助