傳統上,我們使用es6用var,let或const迭代對象?
for (var key in yourobject) {
console.log(key, yourobject[key]);
}
但隨着ES6,我應該改變使用const key
或let key
呢?
傳統上,我們使用es6用var,let或const迭代對象?
for (var key in yourobject) {
console.log(key, yourobject[key]);
}
但隨着ES6,我應該改變使用const key
或let key
呢?
這與你是否在循環中使用它們無關。使用任何程序正確的綁定需要
const
綁定不能被重新分配let
綁定可以被重新分配如果你不需要重新分配您的變量的能力,使用const
- 這是更嚴格,並有助於保護您免於意外重新分配
如果您確實需要重新分配的能力,您別無選擇,只能使用let
(或var
)
我喜歡@ jfriend的決策樹,但我可能會寫我的這樣的^ _^
const
let
var
所以自從我使用它在for循環中,其重新分配的關鍵在每個週期中,我應該使用讓?
編號const
和let
綁定僅在定義的上下文/範圍內可用。在for
或while
循環的情況下,結合只會在循環體可用 - 沒有重新分配正在發生
for (const x of [1,2,3])
console.log(x)
//1
//2
//3
for (const {a} of [{a:1}, {a:2}, {a:3}])
console.log(a)
//1
//2
//3
// const x and const a are not available outside of the loop
console.log(x) // ERROR: Uncaught ReferenceError: x is not defined
console.log(a) // ERROR: Uncaught ReferenceError: a is not defined
依賴,VAR是最環路完全確定,但'讓'我認爲是必須的:p –
使用'let'而不是'var'會改變行爲(在實現它的瀏覽器中),但新行爲(主觀上)更好,所以... – nnnnnn
@nnnnnn' const'並不意味着該變量是一個常量或者它不能被突變 - 它是一個常量*綁定*,而不是一個常量*值* – naomik