在计院电脑上怎么也打不开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
创建块作用域变量,但其值是固定的常量