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

JS变量提升

标签:
JavaScript

废话不多说,直接看以下例子,代码地址

函数声明和函数表达式

a()function a(){    console.log('a');
}
b()var b = function (){    console.log('b')
}//a//Uncaught TypeError: b is not a function

很明显,这个大家都知道这个答案,就是很常见的作用域提前,我们下面来解析下上面的例子。其实上面的例子等价于:

var a = function (){    console.log('a')
}var b;
a()
b()
b = function(){    console.log('b')
}

变量作用域提升(仅考虑局部变量)

a()var a = 1;function a(){  console.log('a')
}
a();//a//Uncaught TypeError: a is not a function

等价于下面的代码

var a;
a = function(){    console.log('a')
}
a()
a = 1;
a()

到这里大家应该都明白了



作者:古朋
链接:https://www.jianshu.com/p/8b185aaa19f2


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消