学习的时候,看到这么一句话:
Javascript具有函数级的作用域。这意味着定义在函数内部的变量在函数外部不能被访问。Javascript的作用域又是词法性质的,这意味着函数运行在定义它的作用域中,而不是在调用它的作用域中。
这两句话要怎么理解呢?最好举个例子哈,十分的感谢!
Javascript具有函数级的作用域。这意味着定义在函数内部的变量在函数外部不能被访问。Javascript的作用域又是词法性质的,这意味着函数运行在定义它的作用域中,而不是在调用它的作用域中。
这两句话要怎么理解呢?最好举个例子哈,十分的感谢!
var a = 'window.a'function fn1(){
alert(a);
}function fn2(){
var a = 'fn2.a';
fn1(); //window.a (因为fn1运行在定义它的作用域中所以)
}fn2();
alert(a);
}function fn2(){
var a = 'fn2.a';
var b = 'fn2.b';
fn1(); //window.a (因为fn1运行在定义它的作用域中所以)
}fn2();
alert(b) //ReferenceError: b is not defined (定义在函数内部的变量在函数外部不能被访问)