for each
for each ๊ตฌ๋ฌธ์ array์์๋ง ์ฌ์ฉํ ์ ์๋ค. ์ธ์๋ก callback ํจ์๋ฅผ ๋ฑ๋กํ์ฌ ๋ฐฐ์ด ์์์ index์ ์ ๊ทผํด ์ฌ์ฉํ ์ ์๋ค. ์ฑ๋ฅ์ ์ข์ง๋ง break์ ์ง์ํ์ง ์๋๋ค. callback ํจ์์ return์ด true๋ false๋ ๋ ๋ค continue ์ฒ๋ฆฌ๋์ด ๋ฃจํ๋ฅผ ์ ๋ถ ๋๊ฒ ๋๋ค. for each ์์ฒด์ return์ undefined์ด๋ค.
break์ ์ฌ์ฉํ๊ธฐ ์ํด try, catch๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง, ์ฝ๋๊ฐ ์ง์ ๋ถํด์ง ์ ์๋ค. ๋ ์ฐ์ํ ๋ฐฉ๋ฒ์ผ๋ก for each ๋์ ์ every๋ some์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋ ๋ฉ์๋ ๋ชจ๋ for each์ฒ๋ผ ๋ฐฐ์ด์ ์ํํ ๋ ์ฌ์ฉ๋๋ค. ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ(์ฆ, callback ํจ์์ return ๊ฐ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ) ๋ฃจํ๋ฅผ ์ค์งํ๊ณ every์ ๊ฒฝ์ฐ ๋ฉ์๋ ์์ฒด์์ false๋ฅผ returnํ๊ณ some์ ๊ฒฝ์ฐ ๋ฉ์๋ ์์ฒด์์ true๋ฅผ return ํ๋ค.
for in
๊ฐ์ฒด์์ ์ํ๊ฐ ํ์ํ ๋ ์ฌ์ฉ๋๋ค. [[Enumerable]] ์ด true์ธ ๊ฒ๋ง ์ํํ๊ฒ ๋์ด์์ด ๊ฐ์ฒด์ ๋ด์ฅ ๋ฉ์๋๋ ๋ด์ฅ ํ๋กํผํฐ ๋ฑ ๋น์ด๊ฑฐํ์ธ ๊ฒฝ์ฐ์๋ ์ํํ์ง ์๋๋ค.
for of
for each์ ๋นํด ๋๋ฆฌ๋ค.(์ฌ์ค ํ๋ซํผ๋ง๋ค ๋ค๋ฅด๋ค๊ณ ํจ) ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ปฌ๋ ์
๊ฐ์ฒด๊ฐ [Symbol.iterator] ์์ฑ์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
index๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ผ๋ฉด ์๋์ ๊ฐ์ด entires ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
for (const [index, each] of ['a', 'b', 'c'].entries()) {
console.log(index, each);
}
References
for each
for each ๊ตฌ๋ฌธ์ array์์๋ง ์ฌ์ฉํ ์ ์๋ค. ์ธ์๋ก callback ํจ์๋ฅผ ๋ฑ๋กํ์ฌ ๋ฐฐ์ด ์์์ index์ ์ ๊ทผํด ์ฌ์ฉํ ์ ์๋ค. ์ฑ๋ฅ์ ์ข์ง๋ง break์ ์ง์ํ์ง ์๋๋ค. callback ํจ์์ return์ด true๋ false๋ ๋ ๋ค continue ์ฒ๋ฆฌ๋์ด ๋ฃจํ๋ฅผ ์ ๋ถ ๋๊ฒ ๋๋ค. for each ์์ฒด์ return์ undefined์ด๋ค.
break์ ์ฌ์ฉํ๊ธฐ ์ํด try, catch๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง, ์ฝ๋๊ฐ ์ง์ ๋ถํด์ง ์ ์๋ค. ๋ ์ฐ์ํ ๋ฐฉ๋ฒ์ผ๋ก for each ๋์ ์ every๋ some์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋ ๋ฉ์๋ ๋ชจ๋ for each์ฒ๋ผ ๋ฐฐ์ด์ ์ํํ ๋ ์ฌ์ฉ๋๋ค. ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ(์ฆ, callback ํจ์์ return ๊ฐ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ) ๋ฃจํ๋ฅผ ์ค์งํ๊ณ every์ ๊ฒฝ์ฐ ๋ฉ์๋ ์์ฒด์์ false๋ฅผ returnํ๊ณ some์ ๊ฒฝ์ฐ ๋ฉ์๋ ์์ฒด์์ true๋ฅผ return ํ๋ค.
for in
๊ฐ์ฒด์์ ์ํ๊ฐ ํ์ํ ๋ ์ฌ์ฉ๋๋ค. [[Enumerable]] ์ด true์ธ ๊ฒ๋ง ์ํํ๊ฒ ๋์ด์์ด ๊ฐ์ฒด์ ๋ด์ฅ ๋ฉ์๋๋ ๋ด์ฅ ํ๋กํผํฐ ๋ฑ ๋น์ด๊ฑฐํ์ธ ๊ฒฝ์ฐ์๋ ์ํํ์ง ์๋๋ค.
for of
for each์ ๋นํด ๋๋ฆฌ๋ค.(์ฌ์ค ํ๋ซํผ๋ง๋ค ๋ค๋ฅด๋ค๊ณ ํจ) ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ปฌ๋ ์ ๊ฐ์ฒด๊ฐ [Symbol.iterator] ์์ฑ์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
index๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ผ๋ฉด ์๋์ ๊ฐ์ด entires ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
References