博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript 词法作用域
阅读量:7250 次
发布时间:2019-06-29

本文共 293 字,大约阅读时间需要 1 分钟。

function foo() {    console.log(a);}function bar() {    var a = 3;    foo();}var a = 2;bar();控制台输出:2复制代码

明明foo函数是在bar函数中执行的,而bar函数作用域中也声明了变量a,那为什么foo不会打印距离更近作用域的值为3的a呢? 因为javascript的作用域实现是基于词法作用域的,而词法作用域的定义发生 在代码的书写阶段。 也就是说在代码中foo的a是通过RHS查询从全局作用域中引用的,因此执行时也会继续从全局中引用a变量,而全局作用域中的a = 2,因此控制台输出2。

转载地址:http://xahbm.baihongyu.com/

你可能感兴趣的文章
Oracle ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务
查看>>
bzoj 1497 最小割模型
查看>>
AOP方法增强自身内部方法调用无效 SpringCache 例子
查看>>
CentOS 7 安装 JDK
查看>>
正则表达式
查看>>
对配置文件内的固定内容加密解密
查看>>
epoll函数知识点
查看>>
pta l2-5(集合相似度)
查看>>
poj1019(打表预处理+数学)
查看>>
【转载】关于防火墙的初次接触
查看>>
集合和泛型 一
查看>>
php 把一个一维数组的值依次赋值到二维数组中的每一项
查看>>
CF_315C_Sereja and Contest
查看>>
vue,下级页面刷新导致路由跳转带过来的数据消失的解决方法
查看>>
border的简略
查看>>
正则表达式---------------嵌套的分组
查看>>
【转载】啥,又要为表增加一列属性?
查看>>
echo
查看>>
接口测试工具-Jmeter使用笔记(九:跨线程组传递变量)
查看>>
(五)CXF之添加拦截器
查看>>