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

JS 函数声明和变量声明的提升顺序

JS 函数声明和变量声明的提升顺序

江户川乱折腾 2019-03-22 19:19:32
现在统一都认为函数声明的提升优先于变量声明的提升,能不能给个例子证明这一观点?下面的例子,并不能论证这一观点console.log(person); //ƒ person() { console.log('function')}function person() {    console.log('function')}console.log(person); //ƒ person() { console.log('function')}var person = "variable";console.log(person);//variable无论是变量声明还是函数声明哪个优先,结果都是一样的;// 假设变量声明优先,实际代码如下var person;function person() {    console.log('function')}console.log(person); //ƒ person() { console.log('function')}console.log(person); //ƒ person() { console.log('function')}person = "variable";console.log(person);//variable// 假设函数声明优先,实际代码如下function person() {    console.log('function')}var person;console.log(person); //ƒ person() { console.log('function')}console.log(person); //ƒ person() { console.log('function')}person = "variable";console.log(person);//variable请各位大牛给个可以证明的例子,或者上述内容有啥不对的地方,万分感谢
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

函数声明提升优先,后面的变量声明都会被忽略,标准就这么写。。。
如果变量声明优先,再声明函数的话理应报错的。

查看完整回答
反对 回复 2019-04-02
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

console.log(a) // undefined

var a = 1

console.log(a) // 1

把这个列子和第一个例子对比,就可以看出优先顺序了。

如果变量声明的优先级大于函数声明,那么你第一个例子的第一个打印值,应该是undefined,而不是函数引用。

例如是下面这种情况。


console.log(person); //undefined

function person() {

    console.log('function')

}

console.log(person); //ƒ person() { console.log('function')}

var person = "variable";

console.log(person);//variable


查看完整回答
反对 回复 2019-04-02
  • 3 回答
  • 0 关注
  • 931 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号