为了账号安全,请及时绑定邮箱和手机立即绑定

js变量对象的问题

js变量对象的问题

慕勒3428872 2019-03-03 23:19:15
function foo(a) {  var b = 2;  function c() {}  var d = function() {};  b = 3;}foo(1);AO = {    arguments: {        0: 1,        length: 1    },    a: 1,    b: undefined,    c: reference to function c(){},    d: undefined}其中b,d为什么是undefined? 不太懂这个过程唉
查看完整描述

2 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

这是 foo函数执行初期的 执行上下文初始化阶段,主要工作是确定作用域内的变量声明提升
这里确定变量:arguments对象abcd
其中 b,c,d 都存在声明提升
b,d 是变量声明提升,初始值即为 undefined
c 是 函数声明提升,初始值即为写的 function c(){}

查看完整回答
反对 回复 2019-03-05
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

作用域:

大括号内的都是局部变量,外部不可见
没有var关键字声明的,作用域提升为全局变量,a、c就是这种情况

多问一句,reference是啥


查看完整回答
反对 回复 2019-03-05
  • 2 回答
  • 0 关注
  • 560 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信