ReferenceError与undefined的区别
概述
ReferenceError
当尝试引用一个未定义的变量/函数时,就会抛出一个ReferenceError。
undefined
当一个变量声明后,没有被复制,那么它就是undefined类型。
案例
- 在下面代码中,打印的a是undefined
b();
console.log(a);
var a = "Hello World!";
function b() {
console.log("Called b!");
}
- 在下面的代码中,打印的是Uncaught ReferenceError: a is not defined。
b();
console.log(a);
function b() {
console.log("Called b!");
}
注意这里的变量声明提前的问题。通过var声明的变量会出现变量声明提升的问题,而let则不会。
可参考博文;