๋ชฉ์ฐจ
2022.02.11 - [๐ | WEB DEV/Vanilla JS] - JS_๊ธฐ๋ณธ๋ฌธ๋ฒ (4)_๋ฐ๋ณต๋ฌธ
๋ฐ๋ณต๋ฌธ ์ค for ๋ฌธ์ ๋ํด์ ์กฐ๊ธ ๋ ์์๋ณด์
๊ตฌ์กฐ
for ([initialization]; [condition]; [final-expression]){
...
}
๊ดํธ ์ 3๊ฐ์ ์
initialization
์ ๋๋ ๋ณ์๋ฅผ ์ ์ธํ๋ค. ์ฃผ๋ก ์นด์ดํฐ์ ์ฌ์ฉํ ๋ณ์๋ฅผ ์ด๊ธฐํํ๋ค.
(์์ ์ ์ธ ์ ์ฆ๊ฐ ๋ถ๊ฐ)
condition
๋งค ๋ฐ๋ณต ๋ง๋ค ํ๊ฐํ ์กฐ๊ฑด์ ์ธ์ด๋ค.
ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ผ ๊ฒฝ์ฐ ์ํ๋ฌธ์ ์คํํ๋ค.
๊ฑฐ์ง์ผ ๊ฒฝ์ฐ for๋ฌธ์ ํ์ถํ๋ค.
๋ง์ฝ ๋น์ด์๋ ๊ฒฝ์ฐ ํญ์ ์ฐธ์ด๋ค.
final-expression
๋งค ๋ฐ๋ณต์ ๋์ ์ํ๋๋ ์์ด๋ค. ์ฃผ๋ก ์นด์ดํฐ ๋ณ์์ ์ฆ๊ฐ์ ์ฌ์ฉ๋๋ค.
(condition ์ด์ ์ ์คํ)
๋น์ด์๋ ๊ฒฝ์ฐ ๋ณํX
ํ์ฉ
๊ธฐ์ด์ ์ธ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
for (let i = 0; i < 5; i++){
console.log(i);
}
>>> 0
>>> 1
>>> 2
>>> 3
>>> 4
์ค์ฒฉ ์ฌ์ฉ๋ ๊ฐ๋ฅํ๋ค.
for (let i = 0; i < 2; i++) {
for (let j = 3; j >= 0; j--) {
console.log(`${i} | ${j}`);
}
}
>>> 0 | 3
>>> 0 | 2
>>> 0 | 1
>>> 0 | 0
>>> 1 | 3
>>> 1 | 2
>>> 1 | 1
>>> 1 | 0
๋ ๊ฐ์ ๋ณ์ ํ์ฉ
๋ ๊ฐ์ ๋ณ์๋ฅผ ํ์ฉํ ๋๋ ์ฝค๋ง๋ฅผ ํ์ฉํ๋ค.
์์ 1)
for (let x = 0, y = 10; x <= y; x++, y--) { //์ฝค๋ง๋ฅผ ํ์ฉ
console.log(x, y);
}
์์ 2)
for (
let flip = true, x = 3, y = 3;
x >= 0 && y >= 0;
flip = !flip, flip ? x-- : y--
) {
console.log(x, y);
}
>>> 3 3
>>> 3 2
>>> 2 2
>>> 2 1
>>> 1 1
>>> 1 0
>>> 0 0
๋ฌดํ๋ฃจํ
๋ฌดํ๋ฃจํ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ฉ์ถ๊ฒ ํ ์ ์๋ค.
๋ฐ๋ผ์ ์ฃผ์ํด์ผํ๋ ์ค๋ฅ ์ค ํ๋์ด๋ค!
for (;;){
...
}
๊ฐ์ฒด, ๋ฐฐ์ด๊ณผ for๋ฌธ
for๋ฌธ์ ์ด์ฉํ์ฌ ๊ฐ์ฒด, ๋ฐฐ์ด ๋ฑ์์ ํญ๋ชฉ์ ์ถ์ถํ ์ ์๋ค.
์์ ์ผ๋ฐ์ ์ธ for๋ฌธ๊ณผ ๋ค๋ฅธ ์ ์
๋ณดํต ์์๋ฅผ ์ ์ธํ๋ค๋ ์ ์ด๋ค! (๋ณํ ๊ฐ์ด ์๋๊ธฐ ๋๋ฌธ)
1. ๊ฐ์ฒด์ for๋ฌธ
๊ฐ์ฒด์ ํค๊ฐ์ ์์๋๋ก ๋ฐํํ๋ค.
๊ตฌ์กฐ
for (const ๋ณ์(ํค) in ๊ฐ์ฒด){ //๊ฐ ๋ฐ๋ณต๋ง๋ค ์ ์ธ & ๋ณํ ๊ฐ์ด ์๋๋ฏ๋ก const
...
}
์์ 1)
const profile1 = {
name : 'Rooney',
backNum : 10,
position : 'FW',
};
for (const key in profile1){
console.log(key, profile1[key]);
}
>>> name Rooney
>>> backNum 10
>>> position FW
์์ 2)
๋ฐฐ์ด๋ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ ํ์ฉ์ด ๊ฐ๋ฅํ๋ค.
(์์ ์ถ์ถ์ด ์๋ ์ธ๋ฑ์ค ์ถ์ถ!)
const list = [1, 2, 3, 4];
for (const item in list) {
console.log(item);
}
>>> 0
>>> 1
>>> 2
>>> 3
2. ๋ฐฐ์ด๊ณผ for๋ฌธ
๋ฐฐ์ด, ์ ํํ๋ iterable์ ์ฌ์ฉ๋๋ ๋ฐฉ์์ด๋ค.
๊ตฌ์กฐ
for (const ๋ณ์(์์) of ๋ฐฐ์ด){ //๋ฐฐ์ด ๋ฟ๋ง ์๋๋ผ iterable์ ๋ชจ๋ ๊ฐ๋ฅ
...
}
์์ 1)
const list = [1, 2, 3, 4];
for (const item of list) {
console.log(item);
}
>>> 1
>>> 2
>>> 3
>>> 4
์์ 2)
๋ฌธ์์ด๋ iterable์ด๊ธฐ ๋๋ฌธ์ ํ์ฉ์ด ๊ฐ๋ฅํ๋ค!
const meg = 'Hello';
for (const item of meg) {
console.log(item);
}
>>> H
>>> e
>>> l
>>> l
>>> o
๋ฐฐ์ด์ of๋ฅผ ์ด์ฉํ์์ ๋ ์ฅ์
์ผ๋ฐ์ ์ธ for๋ฌธ์ ๊ฒฝ์ฐ์๋ ์๋ก์ด ๋ณ์๋ฅผ ํ์ฉํ๊ธฐ ๋๋ฌธ์
ํด๋น ๋ณ์์ ๋ณํ์ ๋ฐ๋ผ์ ๋ค์ํ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค.
ex) ๋ฐฐ์ด์ ์ธ๋ฑ์ค overflow
๊ทธ์ ๋ฐํด of์ ๊ฒฝ์ฐ์๋ ๋ฐฐ์ด์์ ์ง์ ์์๋ฅผ ๋ฐํํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
์กฐ๊ธ ๋ ์์ ํ ๊ตฌ์กฐ๋ผ๊ณ ํ ์ ์๋ค.
'๐ | WEB DEV > Vanilla JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS_๊ธฐ์ (1)_ ์ปค๋ง(currying) (0) | 2023.03.11 |
---|---|
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ (21)_ ์ผ๊ธ ๊ฐ์ฒด (0) | 2023.03.11 |
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ (19)_ case๋ฌธ, ๊ฐ์ฒด ํ์ฉ ๋ณํ case๋ฌธ (0) | 2023.03.07 |
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ (18)_ ์ ์ด๋ฌธ๊ณผ ์ข์ ์ฝ๋? (0) | 2023.03.04 |
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ (17)_์ค์ฝํ (0) | 2023.03.03 |
๋๊ธ