首页前端开发JavaScript一道题解释 js 的词法作用域

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

时间2023-03-24 17:27:44发布访客分类JavaScript浏览626
导读:function foo( { console.log(a } function bar( { var a = 2; foo( ; } var a=1; bar( ;请说出上题最终会输出 a= ?解析:词法作用域让 f...
function foo(){

   console.log(a)
}


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

}
    
var a=1;
    
bar();
    

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

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

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

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

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

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

摘自 《了不起的 JavaScript 上卷》

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

javascript函数

若转载请注明出处: 一道题解释 js 的词法作用域
本文地址: https://pptw.com/jishu/198.html
玫瑰花html(玫瑰花html动态代码) 简单实现点击复制(简单实现点击复制的快捷键)

游客 回复需填写必要信息