看到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可以识别块级作用域
13 回答12.8k 阅读
8 回答2.6k 阅读
2 回答5.1k 阅读✓ 已解决
7 回答1.9k 阅读
3 回答2.2k 阅读✓ 已解决
5 回答847 阅读
3 回答1.1k 阅读✓ 已解决
代码块,有两种不同的含义
es6
之后的块级作用域,上面很多答案都说了用作代码分割,纯粹代码维护上的需求,比如一个函数内需要做两个事,这两件事完全没有关系,这样可以分开,或者其中一些代码不在主流程中,比如需要记录一个日志,将他用
{}
包起来,让代码阅读起来更简单轻快一点,在梳理流程的时候,不需要关心这个分支任务。