这个问题在这里已有答案:
我注意到let
和const
是相似的,行为方式相同,但当然有理由创建它们中的每一个,你能用例子解释它们之间的区别吗?
let
和const
之间的相似之处在于它们都具有块范围。这意味着它们仅在声明的块中可用。
它们之间的区别在于,使用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
用于声明基本类型(字符串,数字,符号,布尔值,未定义),则永远不能更改它。
当您使用const
声明变量时,您无法更改该值,
const name = 'john';
name = 'brad'; // throw error
但是当你使用let
声明变量时,你可以改变它
let name = 'john';
name = 'brad';
console.log(name); // brad