前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一道题解释 js 的词法作用域

一道题解释 js 的词法作用域

作者头像
蓓蕾心晴
发布2023-03-23 21:39:56
3020
发布2023-03-23 21:39:56
举报
文章被收录于专栏:前端小叙前端小叙
代码语言:javascript
复制
function foo(){
   console.log(a)
}

function bar(){
   var a = 2;
   foo();
}
var a=1;
bar();

请说出上题最终会输出 a= ?

解析:词法作用域让 foo() 中的 a 通过 RHS 引用用到了全局作用域中的 a,因此会输出 1.

动态作用域并不关心函数和作用域是如何声明以及在何处声明的,只关心他们从何处调用,作用域链是基于调用栈的,而不是代码中的作用域嵌套。

而事实上 JavaScript 并不具有动态作用域,它只有词法作用域,简单明了。

词法作用域是在写代码或者说定义时就确定的,动态作用域是在运行时确定的。

词法作用域关注函数在何处声明,动态作用域关注函数在何处调用。

摘自 《了不起的 JavaScript 上卷》

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com