2017-02-22 83 views
1

使用的Node.js(ES6)通过一个集合中的每个对象环路如下面的一个:let和const通过集合循环有什么区别?

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); 
 
}

and

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

输出是相同的 - 有什么引擎盖,我应该知道的下回事?

+0

没有什么区别,所以'const'是可取的。 'for'被认为是一个块范围。 – estus

+0

@estus你能解释为什么'const'更适合,如果它们是相同的? – Widor

+0

在变量未更改时使用Const。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const – jhack

回答

3

有了让利,以下是可能的 - 状态可以重新分配:

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是可取的。

+1

但你仍然可以做'地位。 statusId = 111'表示更改每个对象的内容,而不是对象本身的引用 –

+0

为true,您可以随时进一步指定成员变量的可访问性。 –

0

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

const用于当您要将声明的引用修复为基元或对象或数组时。但是,使用对象或数组时,它内部的值仍然可以更改。

如果你不想意外重新指定,const是更可取的。

相关问题