一、作用域
作用域分为全局作用域和局部作用域
全局作用域:代码在程序的任何地方都能被访问,window 对象的内置属性都拥有全局作用域。
局部作用域:在固定的代码片段才能被访问。
var a = 10;
var b = 20;//全局作用域
function fun1(){
var a = 100;
var c = 30;//fun1作用域
function fun2(){
var a = 1000;
var d = 40;//fun2作用域
}
}
二、作用域链
逐层衍生、逐层嵌套的作用域,称之为作用域链
1.全局作用域无法调用局部作用域声明的变量或常量。
2.任何局部作用域都可引用全局变量。
3.追溯到最外层作用域仍未定义的引用,即为 not defined。
作用域特殊情况
//非严格模式下
function fun(){
a = 100;
}
fun();
console.log(a);//100