一道题解释 js 的词法作用域
JS 解释 作用域 一道 词法
2023-06-13 09:17:39 时间
function foo(){
console.log(a)
}
function bar(){
var a = 2;
foo();
}
var a=1;
bar();
请说出上题最终会输出 a= ?
解析:词法作用域让 foo() 中的 a 通过 RHS 引用用到了全局作用域中的 a,因此会输出 1.
动态作用域并不关心函数和作用域是如何声明以及在何处声明的,只关心他们从何处调用,作用域链是基于调用栈的,而不是代码中的作用域嵌套。
而事实上 JavaScript 并不具有动态作用域,它只有词法作用域,简单明了。
词法作用域是在写代码或者说定义时就确定的,动态作用域是在运行时确定的。
词法作用域关注函数在何处声明,动态作用域关注函数在何处调用。
摘自 《了不起的 JavaScript 上卷》
相关文章
- js书写原生ajax,JS 原生ajax写法
- php 中js跳转页面跳转页面,js跳转代码_PHP页面跳转 Js页面跳转代码[通俗易懂]
- 聊聊 JS 断点的实现
- 【JS 逆向百例】猿人学系列 web 比赛第二题:js 混淆 - 动态 cookie,详细剖析
- 原生 JS 实现 HTML 转 Markdown,以及其实现逻辑(html2md.js 或 html2markdown.js)
- 正在加载中-js/jQuery功能实现详解编程语言
- JS验证手机号码格式详解编程语言
- 使用Node.js连接MySQL数据库(node-mysql)
- Linux上的JS压缩工具(js压缩工具linux)
- 利用 JS 实现 Redis 的连接(js连接redis)
- 使用 JS 操作 Redis:实现强大数据存储.(js调用redis)
- 使用JS技术实现Oracle数据库链接(js 链接 oracle)
- 使用JS控制Oracle数据库的更新(js控制oracle更新)
- Oracle中使用JS变量管理数据(oracle使用js变量)
- 用js得到网页中所有的div的id
- js实现DIV的一些简单控制
- JS网页彩蛋实现代码
- 限制字符输入数功能(jquery版和原生JS版)
- 最简单的js图片切换效果实现代码
- js禁止页面复制功能禁用页面右键菜单示例代码
- JS获取滚动条高度示例代码
- js获取电脑分辨率的思路及操作
- node.js中的path.join方法使用说明