js中const、var、let的区别

1、const 定义的变量,是不能够重新赋值的,而且必须初始化。所以这个是使用优先级最高的个语法,他能极大保障数据的安全性。

const num = 3;
console.log(num);
//现在尝试修改i的值
num = 5;
console.log(num);
//这时会报错

但也不是说const所定义的变量就不能修改值

const arr = [name='tome', age=19];
//输出数组的值
console.log(arr);

//修改年龄
arr.age=20;
console.log(arr);

从这我们可以看出,如果用const定义对象,对象中的属性值是可以更改的。

2、let 跟 const 是一样的,只不过它可以重新被赋值。

let num = 10;
//输出值为 10
console.log(num);

//输出值为 20
num = 20;
console.log(num);

3、let 跟 const 是块级作用域,但是 var 是函数级作用域

{
    var x = 333;
    let y = 444;
}

console.log(x); // 333
console.log(y); // 报错

function aaa () {
    console.log("pre", x);  // undefined
    if (true) {
        var x = 323;
    }
    console.log("post", x); // 323,记住,var 定义的变量是函数级别的作用域的
}

原文地址:https://www.cnblogs.com/Qi1007/p/10006195.html