今天有个同事突然问我几种声明变量的方式有何区别,想到自己也没有好好总结过,特此开贴和大家交流
常用的有其中三种 var let const
let声明的变量只在当前的代码块才能使用
for(let i=0;i<10;i++){
console.log(i); //有值
}
console.log(i); //undefined
关于变量提升 JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。 JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。
console.log(_this);//报错
let _this =100;
console.log(_this);//undefined
var_this =100;
关于重复声明 let 不允许在相同作用域内,重复声明同一个变量,也不能在函数内部重新声明参数
总结
声明方式 | 变量提升 | 作用域 | 初始值 | 重复定义 |
---|---|---|---|---|
const | 否 | 块级 | 需要 | 不允许 |
let | 否 | 块级 | 不需要 | 不允许 |
var | 是 | 块级 | 不需要 | 允许 |