js 词法作用域揭秘
Posted 嘉儿2017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 词法作用域揭秘相关的知识,希望对你有一定的参考价值。
先看段代码:
//词法作用域 var scope = "global"; function fn1(){ console.log(scope); } function fn2(){ var scope = "local"; fn1(); } fn2();
结果是global
为什么呢?
js是采用词法作用域,即静态作用域。
javascript 函数的执行用到了作用域链,这个作用域链是在函数定义的时候创建的。fn1调用fn2,fn2 的作用域链按照书写的位置查找,其中的变量 scope 一定是全部变量,不管何时何地执行函数 fn1(),打印的都是全局的“global”。
以上是关于js 词法作用域揭秘的主要内容,如果未能解决你的问题,请参考以下文章