js中的词法作用域
最近在看《你不知道的js》书中讲到 js的词法作用域。通过网上查找整理如下:
作用域:
管理引擎如何在当前作用域以及嵌套的子作用域中根据标识符名称进行变量查找。
词法作用域
词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的,因此当词法分析器处理代码时会保持作用域不变。
注意点:
无论函数在哪里被调用,也无论它如何被调用,它的词法作用域都只由函数被声明时所处的位置决定。
var a=1 ; function getValue(){ console.log(a); } function getValue1(){ var a=2; getValue(); } getValue1(); //输出 1
局部变量申明提升(转)
var x = "globol value"; var getValue = function(){ alert(x); //弹出"undefined" var x = "local value"; alert(x); //弹出"local value"; } getValue();