
正文
js有了var为什么还要有let和const?
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
变量的声明提升
- var 可以在声明语句前调用
- let 必须声明之后才能调用
- 出现这样的问题,是因为代码通过js的解释器的预编译,这个操作会优先扫描所有的代码吧变量声明语句提取到所有代码执行之前,而赋值语句保持位置不便从而导致
if(false){
var one = 1;
}
// 应该报错 但是居然能打印出来
console.log(one) // undefinde
// 实际上相当于这样
var one
if(false){
one = 1;
}
// 应该报错 但是居然能打印出来
console.log(one) // undefinde相关问答
Q1: 重复声明
- var可以重复声明
- let 不能在统一作用域下重复声明
- const 声明的时候就必须要赋值,否则报错 同时也不能在同一作用域下重复声明






