在javascript ES6(ES2015)中声明变量时,使用(let)和(const)的核心区别是什么?

在javascript ES6(ES2015)中声明变量时,使用(let)和(const)的核心区别是什么?,javascript,ecmascript-6,Javascript,Ecmascript 6,我注意到let和const是相似的,它们的行为方式是相同的,但是当然创建它们都有原因,你能用例子解释一下它们之间的区别吗let和const的相似之处在于它们都有块作用域。这意味着它们仅在声明的块中可用 它们之间的区别在于,可以为用let声明的变量分配新值,但不能为用const声明的变量分配新值 设x=3; x=‘已更改’; 常数y=33; y='changed'//抛出错误。使用常量声明变量时,不能更改值 const name = 'john'; name = 'brad'; // throw

我注意到
let
const
是相似的,它们的行为方式是相同的,但是当然创建它们都有原因,你能用例子解释一下它们之间的区别吗
let
const
的相似之处在于它们都有块作用域。这意味着它们仅在声明的块中可用

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

设x=3;
x=‘已更改’;
常数y=33;

y='changed'//抛出错误。
使用
常量声明变量时,不能更改值

const name = 'john';
name = 'brad'; // throw error
但是当您使用
声明变量时,让
可以更改它

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

它们一点也不相似。基本上,使用
const
声明了一个带有最终值的变量。无法分配新值。核心差异:
let
是可变的,而
const
是不变的。是否查找这两者的文档?它们都有很好的文档记录。很好,请阅读以下内容:“这里的一个要点是,const只阻止赋值给一个新值,而不是修改变量”……这条规则只适用于对象和数组,对吗?@DaniMousa Yes。数组是对象。@DaniMousa请参阅,以使数组是对象的概念更加清晰。对不起,我有一个新的查询,上面规则中的基元类型是否包含
NaN
。@DaniMousa是
NaN
是基元类型,也是
null