let声明变量与var声明变量的区别
1.var是函数作用域 let是块作用域
let声明的变量在if/for循环中仍然是局部变量。
好处:可以避免全局污染,如果var声明的全局变量有可能会被无意覆盖,而let不会
// 块:包含了程序语句的大括号
let a = 10; //全局变量
if( a>1 ){
let b = 20; //局部变量
}
2.var有变量提升,let不存在变量提升
let变量必须先声明在使用(暂时性死区/TDZ)
// let变量必须先声明再使用(暂时性死区 TDZ)
console.log( a );
let a = "ok";
3.var在同一作用域下可以重复声明,let不能重复声明
好处?在复杂的项目中,变量的重复声明在所难免,var的情况不报错,容易产生bug,但let直接报错,容易排除。
在vscode中也会给我们提供报错信息
let 同一作用域下不能重复声明
let apple = "iphone13";
let apple = "红富士"; //Identifier 'a
共有 0 条评论