JavaScript 中,undefined 和 ReferenceError 两个概念并不相同。
undefined 表示一个变量已经被声明了,但是还没有被赋值。举个例子:
let x; console.log(x); // 输出 undefined
而 ReferenceError 表示该变量根本就未被声明,无法找到。举个例子:
console.log(x); // 抛出 ReferenceError: x is not defined
可以看到,在第一个例子中,变量 x 已经被声明了,尽管没有被赋值,所以输出 undefined。但是在第二个例子中,我们并没有声明变量 x,所以会抛出 ReferenceError。
总结来说,undefined 表示一个变量已经被声明但是还没有被赋值,而 ReferenceError 表示该变量根本就没有被声明。