SyntaxError: a declaration in the head of a for-of loop can't have an initializer
๋ฉ์ธ์ง
SyntaxError: for-of loop head declarations cannot have an initializer (Edge) SyntaxError: a declaration in the head of a for-of loop can't have an initializer (Firefox) SyntaxError: for-of loop variable declaration may not have an initializer. (Chrome)
์๋ฌ ํ์
๋ฌด์์ด ์๋ชป๋์์๊น?
for...of ๋ฐ๋ณต๋ฌธ์ ์์ด ์ด๊ธฐํ ๊ตฌ๋ฌธ์ ํฌํจํ ๊ฒ์ด ๋ฌธ์ ์
๋๋ค. ์ฆ, |for (var i = 0 of iterable)
| ๊ตฌ๋ฌธ์ ํตํด ๋ณ์๊ฐ ์ ์๋๊ณ ๊ฐ์ด ํ ๋น๋ ๊ฒ์ ๋งํฉ๋๋ค. ์ด ๊ตฌ๋ฌธ์ for-of ๋ฐ๋ณต๋ฌธ์์ ํ์ฉ๋์ง ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ด๊ธฐํ๋ฅผ ํ ์ ์๋ for ๋ฐ๋ณต๋ฌธ์ด ํ์ํฉ๋๋ค.
์์
์๋ชป๋ for-of ๋ฐ๋ณต๋ฌธ
let iterable = [10, 20, 30];
for (let value = 50 of iterable) {
console.log(value);
}
// SyntaxError: a declaration in the head of a for-of loop can't
// have an initializer
์ฌ๋ฐ๋ฅธ for-of
๋ฐ๋ณต๋ฌธ
for-of ๋ฐ๋ณต๋ฌธ์์ ์ด๊ธฐํ ๊ตฌ๋ฌธ(value = 50
)์ ์ญ์ ํด์ผ ํฉ๋๋ค. 50์ ๋ํ๊ณ ์ถ๋ค๋ฉด ๋ค์ ์์ ์ ๊ฐ์ด ๋ฐ๋ณต๋ฌธ ์์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
let iterable = [10, 20, 30];
for (let value of iterable) {
value += 50;
console.log(value);
}
// 60
// 70
// 80
๊ฐ์ด ๋ณด๊ธฐ
for...of
for...in
โ ์๊ฒฉ(Strict) ๋ชจ๋์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ด๊ธฐํ๋ฅผ ํ์ฉํ์ง ์์ต๋๋ค. (SyntaxError: for-in loop head declarations may not have initializers)for
โ ์ด๊ธฐํ๋ฅผ ํ์ฉํฉ๋๋ค.