一、块级绑定
大多数类C语言中,变量(或绑定)总是在它被声明的地方创建。然而JS就不是这样,变量实际创建的位置取决于你如何声明它,而在ES6中提供了块级绑定以便你能更轻易地控制变量的作用域。
ES6向类C语言的风格靠近了
1.1 var声明与变量提升
使用var关键字声明的变量,无论其实际声明位置在何处,都会被视为声明于所在函数的顶部(如果声明不在任意函数内,则视为在全局作用域的顶部)。这就是所谓的变量提升。
参考如下函数定义了解变量提升的含义
function getValue(codition){
if(codition) {
var value = 'blue'
// 其他代码
return value
} else {
// value 在此处可访问,值为undefined
return null;
}
// value在此处可访问,值为undefined