内层作用域可以定义外层作用域的同名变量
例一:
{
{
{
let a="123";
}
console.log(a); //会报错,ES6允许块级作用域的任意嵌套;三层的块级作用域每层都是一个单独的作用域。
}
}
例二:
{
{
{
let a="abc";
console.log(a); // abc
}
let a="123";
console.log(a); //123
}
}
ES5 只有全局作用域和函数作用域 没有块级作用域,所有外层代码块不受内层代码块的影响:
function fn10(){
let a=5;
if(true){
let a=6;
}
console.log(a); //5
}
网友评论