看到js有这样的写法,不知道这个大括号的用意:
function run(){
{
alert(1);
}
}
我其实是不太理解他只是在大括号中执行了一个方法,这种写法和变量的作用域有什么关系。
看到js有这样的写法,不知道这个大括号的用意:
function run(){
{
alert(1);
}
}
我其实是不太理解他只是在大括号中执行了一个方法,这种写法和变量的作用域有什么关系。
我说一下另一种情况
例如vue
源码用的rollup
if ('development' !== 'production') {
alert(1)
}
编译之后:
{
alert(1)
}
ES6增加了块级作用域
块级作用域内的变量也无法在块级作用域之外访问,var声明符不识别块级作用域,也就是说
{
var a = 1;
}
不是一个块级作用域,但是let,const可以识别块级作用域
10 回答11.4k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.9k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.5k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
代码块,有两种不同的含义
es6
之后的块级作用域,上面很多答案都说了用作代码分割,纯粹代码维护上的需求,比如一个函数内需要做两个事,这两件事完全没有关系,这样可以分开,或者其中一些代码不在主流程中,比如需要记录一个日志,将他用
{}
包起来,让代码阅读起来更简单轻快一点,在梳理流程的时候,不需要关心这个分支任务。