CHAT with me on luogo!

变量提升和函数提升

首先使用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声明变量的语句被置于代码块顶部,但是需要注意函数声明提升。
posted @   qsad阿斯顿  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示
西雅图
01:03发布
西雅图
01:03发布
6°
中雨
西北风
3级
空气质量
相对湿度
90%
今天
中雨
3°/12°
周二
小雨
4°/11°
周三
小雨
3°/9°