if (true) {
var somevar = 'value';
}
console.log(somevar); // valuefor(var i=0;i<10;i++){
}
alert(i);//10以上两个常见的例子在花括号以外还能输出值,说明js没有块级作用域,不像后台语言if语句或者for循环执行完后变量被销毁,使用var声明变量会被添加到当前的执行环境(全局环境)
JavaScript 的作用域完全是由函数来决定的,if、for 语句中的花括号不是独立的作用域