当我们在JavaScript ES6(ES2015)中声明变量时,使用(let)和(const)之间的核心区别是什么?

时间:2019-04-21 14:38:09

标签: javascript ecmascript-6

我注意到letconst相似且行为相同,但是当然有理由创建它们中的每一个,能否请您通过示例解释它们之间的区别< / p>

2 个答案:

答案 0 :(得分:1)

当您使用const声明变量时,无法更改该值,

const name = 'john';
name = 'brad'; // throw error

但是当您使用let声明变量时,可以更改

let name = 'john';
name = 'brad';
console.log(name); // brad

答案 1 :(得分:0)

letconst之间的相似之处在于它们都具有块作用域。这意味着它们仅在声明的块中可用。

它们之间的区别在于,可以为用let声明的变量分配一个新值,而不能用const声明的变量分配一个新值。

let x = 3;
x = 'changed';

const y = 33;
y = 'changed' //throws error.

这里重要的一点是const仅阻止分配给新值,而不是修改变量。

const obj = {a:1};
obj.a = 5 //will not throw error
obj.b = 'something' //will not throw error
obj = {x:1} //will throw error

注意:如果使用const声明原始类型(字符串,数字,符号,布尔值,未定义),则永远不能更改它。