使用try创建块级作用域

这个只作为了解,不推荐使用,最大的有点就是在ECMAScript3就存在了。

ES6已经新增了let命令,实际上为我们添加了块级作用域,在ES5之前是没有的,不过可以使用这种方法来实现。

比如下面这个例子,

ES6是这样写的

{
    let a = 20;
    console.log(a);
}
console.log(a);

这里最后一行代码会报错,因为上面只在{}代码块内有效。

用try实现

try {
    throw 20;
} catch (e) {
    console.log(e);
}
console.log(e);

不过最后再说一次,推荐使用,第一性能优化差,第二就是可读性不好。

猜你喜欢

转载自www.cnblogs.com/boses/p/9586100.html