内层作用域可以定义外层作用域的同名变量,内部声明的函数都不会影响到作用域的外部
{
let name = '随笔川迹'
{
let name = 'itclanCoder'
}
}
有了块级作用域的出现...,
b: true,
c: true
}
// 不会产生错误
for(const key in object) {
arrs.push(function() {...console.log(key);
})
}
arrs.forEach(function(arr) {
arr();
})
注意事项
对于复合类型的变量,变量名不指向数据,而是指向数据所在的地址...,不能把foo指向另一个地址,但对象本身是可变的,所以依然可以为其添加新的属性
07
关于全局块作用域的绑定
当var,和function被用于全局作用域时,它会创建一个新的全局变量对象作为全局对象(浏览器环境中的...let,而不改变的定义变量,使用const声明,如:for循环体中,使用const定义初始化值变量,那么就会报错,因为常量不能被改变
而for..in,fo..of循环中,let,const都会每次迭代创建一个新的绑定