try catch是否具有块级范围?

时间:2016-09-28 13:35:42

标签: javascript

如果我在catch块中创建一个变量,那么这个块级范围是什么?

似乎在全球范围内创建它。

我认为这是块级别,因为没有转换器将let语句转换为try / catch吗?

try {
    throw Error("test");
} catch (e) {
    var x = 15;
    console.log(x);
}

console.log(x);

1 个答案:

答案 0 :(得分:2)

  

如果我在catch块中创建一个变量,那么这个块级别的范围是什么?

如果你创建了一个块范围变量(using let),那就是。

  

似乎在全球范围内创建它。

您正在使用var,它始终在当前函数的范围内创建变量(如果您不在函数中,则为全局变量)。