作用域:指决定「变量在脚本中的什么位置可以访问到」的概念。分为全局作用域和局部作用域。
**不使用var语句声明的变量都视为全局变量,要定义局部变量必须使用var语句。
sample:
var scope='Global VAR';
function getValue(){
console.log(scope); //<========结果(1):undefinded
var scope='Local VAR';
return scope;
}
console.log(getValue); //<====Local VAR;
console.log(scope); //<====Global VAR;
在函数的开头声明局部变量:通过这种方法可以消除直观变量的有效范围和实际的有效范围不符合的问题。
通过call(this)立刻执行来防止变量名的冲突。
(function(){
var i=5;
console.log(i);
}).call(this); //====>立即执行function(),输出5
console.log(i); //====>因为在变量I的作用域之外,所以出错
使用let命令声明的变量在代码块之外时无效的。
{
let i=5;
console.log(i); //输出5
}
console.log(i); //出错
因此在switch语句中不要使用let命令来声明变量。