如果我在catch块中创建一个变量,那么这个块级范围是什么?
似乎在全球范围内创建它。
我认为这是块级别,因为没有转换器将let语句转换为try / catch吗?
try {
throw Error("test");
} catch (e) {
var x = 15;
console.log(x);
}
console.log(x);
答案 0 :(得分:2)
如果我在catch块中创建一个变量,那么这个块级别的范围是什么?
如果你创建了一个块范围变量(using let
),那就是。
似乎在全球范围内创建它。
您正在使用var
,它始终在当前函数的范围内创建变量(如果您不在函数中,则为全局变量)。