块级作用域

在计院电脑上怎么也打不开csdn来写博客,只好先在有道云上写!果然是歧视啊,来我自己电脑上就可以了

块级作用域

在for循环的头部直接定义了变量i,而i会被绑在外部作用域
当使用var声明变量时,它写在哪里都是一样的,因为它们最终都会属于外部作用域

for (var i = 0; i < 10.; i++) {
console.log(i);
}
console.log(i); //10
});

with

用with从对象中创建出的作用域仅在with声明中而非外部作用域中有效

try/catch

ES3规范中规定try/catch的catch分句会创建一个块作用域,其中声明的变量仅在catch内部有效

try {
    f(); //执行一个非法操作来强制制造一个异常
} catch (err) {
    console.log(err); //正常输出异常信息
}
console.log(err);  //err not found 

let

ES6中,let关键字可以将变量绑定到所在的任意作用域中(通常是{…}内部)

使用let进行的声明不会再作用域中进行提升

{
    console.log(bar);//ReferenceError
    let bar =2;
}

const

创建块作用域变量,但其值是固定的常量

你可能感兴趣的:(js)