let和const循环一个集合有什么区别?

使用Node.js(ES6)循环访问集合中的每个对象,如下所示:

var statuses = [{ statusId: 1, description: 'New' }, { statusId: 2, description: 'Pending' }, { statusId: 3, description: 'Approved' }, { statusId: 4, description: 'Inactive' } ]; 

使用之间有什么区别:

 for (const status of statuses) { console.log(status.description); } 

 for (let status of statuses) { console.log(status.description); } 

输出是相同的 – 有什么事情发生在我应该知道的引擎盖下?

随着让,以下是可能的 – 地位可以重新分配:

 var statuses = [ {statusId:1, description: 'New'}, {statusId:2, description: 'Pending'}, {statusId:3, description: 'Approved'}, {statusId:4, description: 'Inactive'} ]; for (let status of statuses) { status = {statusId:1, description: 'New'}; console.log(status.description); } 

但是,const也是不可能的。 如果你不想意外重新分配,const是可取的。

let块范围声明。 定义/参考仅限于其范围的块。

当您想要将声明的引用修复为基元或对象或数组时,使用const 。 然而,是使用对象或数组,它里面的值仍然可以改变。

如果你不想意外重新分配,const是可取的。