在JavaScript中有三种声明变量的方式:var、let、const。下文给大家介绍js中三种定义变量的方式const, var, let的区别
1.let和const中不存在变量提升,var中存在变量提升
console.log("a----" + a);
var a = "a";
console.log("b----" + b);
let b = "b";
console.log("c----" + c);
const c = "c";
var a 输出的结果是
let b 输出的结果是
const c 输出的结果是
因为b 和 c 不存在变量提升 代码从上往下执行 找不到b 和 c 所以报错 变成defined
2. let 和 const 会形成块级作用域(就是 {} ) var 除了函数 里面的 变量 否则不会形成块级作用域
function fn() {
var a = 0;
console.log(a);
}
fn();
console.log(a);
var a 在函数里面输出的结果是
如果在if 中 就可以输出值
if(true){
var b = 0;
}
console.log(b);
结果会输出
我们再来看看 let 和 const
function fn() {
let a = 0;
console.log(a);
}
fn();
console.log(a);
let a 输出的结果是
const和let输出的结果是一致的我就不写了
再来看看 if 中的 输出的值吧
if(true){
let b = 0;
}
console.log(b);
在if中的 let a 中我们看到的是
3.let const 不能再次赋值 而 var 可以再次赋值
var a = 10;
var a = 11;
console.log(a);
var 变量可以再次赋值
var a = 10;
var a = 11;
console.log(a);
//输出的结果是11
我们再来看看let 和 const
let b = 11;
let b = 11;
console.log(b);
输出的结果是
系统报错:告诉我们 b 变量已经声明了
我们最后看看const
const c = 12;
const c = 12;
console.log(c);
会报和let一样的错 所以结果是一样的
以上就是let const 和 var的区别
let 和 const 非常相似但是我们来看看它们之间唯一的区别
let a;
console.log(a);
会输出
再来看看const
const b;
console.log(b);
const 输出
系统会报错:在Const声明中缺少初始化器
唯一的区别就是let声明变量不赋值不会报错 而const声明变量不赋值会报错
上面就是我个人的看法,如果有其他意见的望君留言
想看更多请点击我的博客