块作用域:一个用来对之前的最小授权原则进行扩展的工具,将代码从在函数中隐藏信息扩展为在块中隐藏信息
1. with:参考JavaScript基础知识——词法作用域和函数作用域https://mp.csdn.net/postedit/99705618
2.try/catch
3. let:let关键字可将变量绑定到所在的任意作用域中(通常是{......}内部),用来在任意代码块中声明变量
只要声明是有效的,在声明中的任意位置都可以使用{....}括号来为let创建一个用于绑定的块。
4. const:用来创建块作用域变量,但其值是固定的(常量),之后任何试图修改值的操作都会引起错误
总结:任何声明在某个作用域内的变量,都将附属于这个作用域
引擎会在解释JavaScript代码之前首先对其进行编译,编译阶段中的一部分工作就是找到所有的声明,并用合适的作用域将它们联系起来
包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理
先有声明后有赋值
声明本身会被提升,而包括函数表达式的赋值在内的赋值操作并不会提升
PS:要注意避免重复声明