其他分享
首页 > 其他分享> > 变量提升和函数提升

变量提升和函数提升

作者:互联网

首先使用var声明变量会造成变量提升,毫无疑问变量a会被置于代码块顶部,但是下方使用function关键字声明了函数a,函数声明也会提升至代码块顶部,而且优先级更高。

所以实际代码等价于
1 2 3 4 function a () {} var a a = 10 console.log(typeof a)

变量a会覆盖函数a,输出结果为number。
那如果这里使用关键词let呢,代码变为

 
1 2 3 let a = 10 function a () {} console.log(typeof a)
这里明显会报错。前面提到,函数声明会优先于变量声明,会被提升至代码块顶部,所以会先声明function a ,再执行let a = 10;,但是a已被声明过,不能再使用let 关键字进行重声明。所以这里应当注意函数声明提升的问题,即便let声明变量的语句被置于代码块顶部,但是需要注意函数声明提升。

标签:function,函数,代码,let,提升,声明,变量
来源: https://www.cnblogs.com/huashenyin/p/16269347.html