๐Ÿ“Œ javascript ๊ฐœ๋… #6 ๋ฐ˜๋ณต๋ฌธ

doyeonleeยท2022๋…„ 3์›” 22์ผ
0

js / html / css

๋ชฉ๋ก ๋ณด๊ธฐ
6/13
post-thumbnail

๋ฐ˜๋ณต๋ฌธ

๋ฐ˜๋ณต๋ฌธ์€ ๋˜‘๊ฐ™์€ ๋ช…๋ น์„ ์ผ์ • ํšŸ์ˆ˜ ๋งŒํผ ๋ฐ˜๋ณตํ•˜์—ฌ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ œ์–ดํ•˜๋Š” ๋ช…๋ น๋ฌธ์ด๋ฉฐ,
for๋ฌธ, while๋ฌธ์ด ์žˆ์œผ๋ฉฐ for๋ฌธ์—๋Š” for ... in๋ฌธ for ... of๋ฌธ์ด ์žˆ๋‹ค.


for๋ฌธ

for๋ฌธ์€ ๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ๊ณ  ์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ ์„ธ ๊ฐœ์˜ ์„ ํƒ์‹๊ณผ ๋ฐ˜๋ณต์„ ์ˆ˜ํ–‰ํ•  ๋ธ”๋Ÿญ๋ฌธ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.


1) ์ผ๋ฐ˜์ ์ธ ํ˜•์‹

for ([initialization]; [condition]; [final - expression])
	statement

MDN๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด ์ ์—ˆ๋‹ค.

2) ๊ตฌ์„ฑ์š”์†Œ

๊ตฌ์„ฑ์š”์†Œ์˜ˆ์„ค๋ช…
initialization (์„ ์–ธ๋ฌธ)let i = 0;์‹ ๋˜๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ, var๋˜๋Š” let ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉ
condition (์กฐ๊ฑด๋ฌธ)i < a.length;๋ฐ˜๋ณตํ•  ๋•Œ๋งˆ๋‹ค ํ‰๊ฐ€ํ•  ์‹์ด๋ฉฐ, ํ‰๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ผ๋ฉด statement๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
final - expression (์ฆ๊ฐ๋ฌธ)i++๋‹ค์Œ๋ฒˆ condition ํ‰๊ฐ€ ์ด์ „์— ๋ฐœ์ƒํ•œ๋‹ค. ๋ณ€์ˆ˜๋ฅผ ์ฆ๊ฐํ•˜๊ฑฐ๋‚˜ ๋ฐ”๊ฟ€๋•Œ ์“ด๋‹ค.
statement (๋ฌธ)result(i)์กฐ๊ฑด์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ๋•Œ ์‹คํ–‰.

for ... in

for ... in๋ฌธ์€ ์ƒ์†๋œ ์—ด๊ฑฐ ๊ฐ€๋Šฅํ•œ ์†์„ฑ๋“ค์„ ํฌํ•จํ•˜์—ฌ ๊ฐ์ฒด์—์„œ ๋ฌธ์ž์—ด๋กœ ํ‚ค๊ฐ€ ์ง€์ •๋œ ๋ชจ๋“  ์—ด๊ฑฐ ๊ฐ€๋Šฅํ•œ ์†์„ฑ์— ๋Œ€ํ•ด ๋ฐ˜๋ณต

1) ์ผ๋ฐ˜์ ์ธ ํ˜•์‹

for (variable in object) { ... }

/*-------------------------*/
const object = { a: 1, b: 2, c: 3 };

for (const property in object) {
  console.log(`${property}: ${object[property]}`);
}

// expected output:
// "a: 1"
// "b: 2"
// "c: 3"

2) ๊ตฌ์„ฑ์š”์†Œ

๊ตฌ์„ฑ์š”์†Œ์„ค๋ช…
variable (๋ณ€์ˆ˜)๋งค๋ฒˆ ๋ฐ˜๋ณต ์‹œ, ๋‹ค๋ฅธ ์†์„ฑ์ด๋ฆ„์ด ๋ณ€์ˆ˜๋กœ ์ง€์ •๋œ๋‹ค.
object๋ฐ˜๋ณต ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๊ฐ์ฒด๋กœ ์—ด๊ฑฐํ˜• ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด

=> ๊ฐ์ฒด์˜ ๋ฐ˜๋ณต์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด ์กŒ์ง€๋งŒ, ๋ฐฐ์—ด์˜ ๋ฐ˜๋ณต์„ ์œ„ํ•ด์„œ๋Š” ์ด๋ฏธ Array.prototype.forEach() ๋‚˜, for ... of ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž˜ ์“ฐ์ด์ง€ ์•Š๋Š”๋‹ค.

=> for ... in์€ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ํ™•์ธํ•˜๋Š” ์šฉ๋„, ์ฆ‰ key - value์˜ ์Œ์ด ์„ ํ˜ธ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ ํŠน์ • ๊ฐ’์„ ๊ฐ€์ง„ ํ‚ค๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์šฉ๋„๋กœ ์“ธ ์ˆ˜ ์žˆ์Œ.


for ... of

for ... of๋ฌธ์€ ๋ฐ˜๋ณต๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์— ๋Œ€ํ•ด ๋ฐ˜๋ณตํ•˜๊ณ  ๊ฐ ๊ฐœ๋ณ„ ์†์„ฑ๊ฐ’์— ๋Œ€ํ•ด ์‹คํ–‰๋˜๋Š” ๋ฌธ์ด๋ฉฐ,

1) ์ผ๋ฐ˜์ ์ธ ํ˜•์‹

for (variable of iterable) {
  statement
}

/*-------------------------*/

const array1 = ['a', 'b', 'c'];

for (const element of array1) {
  console.log(element);
}

// expected output: "a"
// expected output: "b"
// expected output: "c"

2) ๊ตฌ์„ฑ์š”์†Œ

๊ตฌ์„ฑ์š”์†Œ์„ค๋ช…
variable (๋ณ€์ˆ˜)๊ฐ ๋ฐ˜๋ณต์— ์„œ๋กœ ์†์„ฑ๊ฐ’์ด variable์— ํ• ๋‹น๋œ๋‹ค.
iterable๋ฐ˜๋ณต๋˜๋Š” ์—ด๊ฑฐ๊ฐ€๋Šฅํ•œ ์†์„ฑ์ด ์žˆ๋Š” ๊ฐ์ฒด (Array, String, Map, Set, Dom ์ „๋ถ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

While๋ฌธ

์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ผ ๋•Œ ์ฝ”๋“œ ๋ธ”๋ก์„ ๊ณ„์†ํ•ด์„œ ๋ฐ˜๋ณต ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ
-> for๋ฌธ์— ๋น„ํ•ด ์„ ์–ธ๋ฌธ๊ณผ ์ฆ๊ฐ๋ฌธ ์—†์ด loop๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๋ฌดํ•œ loop๋“ฑ ์ˆ˜ํ–‰์‹œ ๋งŽ์ด ์‚ฌ์šฉ
-> ์กฐ๊ฑด๋ฌธ์„ ์ฝ”๋“œ ๋ธ”๋ก๋ณด๋‹ค ์•„๋ž˜๋กœ ์˜ฎ๊ธด do ~ while ๋ฐ˜๋ณต๋ฌธ๋„ ์กด์žฌ
(์ตœ์†Œ ํ•œ๋ฒˆ ์ˆ˜ํ–‰์ด ํ•„์š”ํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ)

1) ์ผ๋ฐ˜์ ์ธ ํ˜•์‹

while (condition) {
  statement
}

/*-------------------------*/

var n = 0;
var x = 0;

while (n < 3) {
  n++;
  x += n;
}
// n์ด 3๋ณด๋‹ค ์ž‘์„ ๋•Œ ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

์˜ˆ์ œ ์„ค๋ช…
: n์„ x์— ๊ณ„์† ๋”ํ•˜๋Š” ๊ฒƒ
n++; : n์ดํ•˜๋‚˜์”ฉ ๋Š˜์–ด๋‚˜๋ฉฐ ๋ฐ˜๋ณต๋œ๋‹ค.
=> ๋”ฐ๋ผ์„œ
์ฒซ๋ฒˆ์งธ ๋ฐ˜๋ณต์—์„œ๋Š” n = 1, x = 1 ์ด๊ณ ,
๋‘๋ฒˆ์งธ ๋ฐ˜๋ณต์—์„œ๋Š” n = 2, x = 3 (๋‘๋ฒˆ์งธ ๋ฐ˜๋ณต n + ์ฒซ๋ฒˆ์งธ ๋ฐ˜๋ณต x),
์„ธ๋ฒˆ์งธ ๋ฐ˜๋ณต์—์„œ๋Š” n = 3, x = 6 (์„ธ๋ฒˆ์งธ ๋ฐ˜๋ณต n + ๋‘๋ฒˆ์จฐ ๋ฐ˜๋ณต x) ์ด๋‹ค.

2) ๊ตฌ์„ฑ์š”์†Œ

๊ตฌ์„ฑ์š”์†Œ์„ค๋ช…
condition (์กฐ๊ฑด๋ฌธ)์กฐ๊ฑด๋ฌธ์ด ๋“ค์–ด๊ฐ€๋Š” ์ž๋ฆฌ์ด๋ฉฐ ์ฐธ์ด๋ฉด while์•ˆ์˜ ๋ฌธ์žฅ๋“ค์ด ์‹คํ–‰, ๊ฑฐ์ง“์ด๋ฉด while ํ›„๋กœ ๋„˜์–ด๊ฐ„๋‹ค.
statement (๋ฌธ)์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ด๋ฉด ์‹คํ–‰๋˜๋ฉฐ, ๋ฐ˜๋ณต๋ฌธ ์†์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฌธ์žฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉ

do ... while

do ... while๋ฌธ์€ ํ…Œ์ŠคํŠธ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์œผ๋กœ ํ‰๊ฐ€๋ ๋•Œ๊นŒ์ง€ ์ง€์ •๋œ ๊ตฌ๋ฌธ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฃจํ”„๋ฅผ ๋งŒ๋“ ๋‹ค. ๋‹จ, ๊ตฌ๋ฌธ์ด ์‹คํ–‰๋œ ๋’ค ํ…Œ์ŠคํŠธ ์กฐ๊ฑด์ด ํ‰๊ฐ€๋˜๋ฏ€๋กœ ๊ตฌ๋ฌธ์ด true์ธ์ง€ false์ธ์ง€์— ์ƒ๊ด€์—†์ด ๊ตฌ๋ฌธ์„ ๋ฌด์กฐ๊ฑด ํ•œ๋ฒˆ์ด๋ผ๋„ ์‹คํ–‰ํ•ด์•ผ ํ• ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
-> ๋Œ€๋ถ€๋ถ„์˜ case์—์„œ while์„ ์‚ฌ์šฉํ•จ.

1) ์ผ๋ฐ˜์ ์ธ ํ˜•์‹

do {
	statement
}
while (condition);

/*-------------------------*/

let result = '';
let i = 0;

do {
  i = i + 1;
  result = result + i;
} while (i < 5);

console.log(result);
// expected result: "12345"

2) ๊ตฌ์„ฑ์š”์†Œ

๊ตฌ์„ฑ์š”์†Œ์„ค๋ช…
statement (๋ฌธ)ํ…Œ์ŠคํŠธ ์กฐ๊ฑด์ด ์ฐธ์ผ๋•Œ ํ•œ๋ฒˆ ์ด์ƒ ์‹คํ–‰๋˜๋Š” ๊ตฌ๋ฌธ
condition (์กฐ๊ฑด๋ฌธ)๋ฃจํ”„๊ฐ€ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ํ‰๊ฐ€๋˜๋Š” ์‹
profile
๋Š๋ ค๋„ ์ฒœ์ฒœํžˆ ๊ผผ๊ผผํ•˜๊ฒŒ !

0๊ฐœ์˜ ๋Œ“๊ธ€