๐Ÿ”— TIL) ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ

Solmiiยท2020๋…„ 4์›” 28์ผ
0

JavaScript

๋ชฉ๋ก ๋ณด๊ธฐ
5/24
post-thumbnail

โ˜๏ธ ์กฐ๊ฑด๋ฌธ(Conditional Statement)

If operators


์ด๋Ÿฐ ํ˜•์‹์ธ๋ฐ, ์˜ˆ์‹œ ๋จผ์ € ๋ด…์‹œ๋‹ค!!

const name = "solmi";

if (name === "solmi"( { //๋งŒ์•ฝ name์˜ ๊ฐ’์ด "solmi"๋ฉด
	console.log("Welcome, solmi!"); //Welcome, solmi!๋ฅผ ์ถœ๋ ฅํ•˜๊ณ 
} else if (name === "kang"){ //๋งŒ์•ฝ name์˜ ๊ฐ’์ด "solmi"๋Š” ์•„๋‹ˆ์ง€๋งŒ, "kang"๋ผ๋ฉด
	console.log("Hi, Kang!"); // Hi, Kang!์„ ์ถœ๋ ฅํ•˜๊ณ 
} else { //name์˜ ๊ฐ’์ด "solmi"๋„ ์•„๋‹ˆ๊ณ  "kang"๋„ ์•„๋‹ˆ๋ผ๋ฉด
	console.log("unkwnon"); //unkwnon์„ ์ถœ๋ ฅ
}

if aa๋ผ๋ฉด A ์ถœ๋ ฅ, else if ์•„๋‹ˆ๊ณ  bb๋ผ๋ฉด B ์ถœ๋ ฅ, else ๊ทธ๊ฒƒ๋„ ์•„๋‹ˆ๋ฉด C ์ถœ๋ ฅ! ๊ฐ„ใ…ก๋‹จ์“ฐ

๐Ÿ’๐Ÿปโ€โ™€๏ธ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฒฝ์šฐ ์ค‘ ์กฐ๊ฑด์— ๋งž๋Š”๊ฑด ๋ชจ๋‘ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ

if๋ฌธ์„ ์“ธ๋•Œ else if ๋ฅผ ๊ฑฐ์˜ ์„ธํŠธ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ...

let a =15, b = 4
if (a๋Š” 5์˜ ๋ฐฐ์ˆ˜) {} // a๋Š” ์—ฌ๊ธฐ์— ๊ฑธ๋ฆฌ๊ณ  // b๋Š” ์—ฌ๊ธฐ์— ์•ˆ๊ฑธ๋ฆฌ๊ณ 
if (a๋Š” 3์˜ ๋ฐฐ์ˆ˜) {} // a๋Š” ์—ฌ๊ธฐ์—๋„ ๊ฑธ๋ฆฌ๊ณ  // b๋Š” ์—ฌ๊ธฐ์—๋„ ์•ˆ๊ฑธ๋ฆฌ๊ณ 
if (a๋Š” 2์˜ ๋ฐฐ์ˆ˜) {} // a๋Š” ์—ฌ๊ธฐ์—๋Š” ์•ˆ๊ฑธ๋ฆฌ๊ณ  // b๋Š” ์—ฌ๊ธฐ์—๋Š” ๊ฑธ๋ฆฌ๊ณ 

์ด๋Ÿฐ์‹์œผ๋กœ if๋ฌธ์„ ์—ฌ๋Ÿฌ๊ฐœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค!!!

๐Ÿ’๐Ÿปโ€โ™€๏ธ If๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋Š” Ternary operator (์‚ผํ•ญ ์—ฐ์‚ฐ์ž)

console.log(name === "solmi" ? "yes" : "no");

?๊ฐ€ if์˜ ์—ญํ• ์„ ํ•œ๋‹ค.
name === "solmi" ๊ฐ€ ๋งž์œผ๋ฉด yes๋ฅผ ์ถœ๋ ฅ! ์•„๋‹ˆ๋ฉด no๋ฅผ ์ถœ๋ ฅ!
Ternary operator๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ณ„์† if else if else if....๋ฌถ์–ด๋‚˜๊ฐ€๋ฉด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๋ฏ€๋กœ, ๊ทธ๋Ÿด ๊ฒฝ์šฐ์—๋Š” if ๋˜๋Š”, switch ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค!


Switch operators

const browser = "IE";

switch (browser){
	case "IE" : //browser์˜ ๊ฐ’์ด "IE"์ด๋ฉด
		console.log("go aray!!"); //go away!! ๋ฅผ ์ถœ๋ ฅ
		break; //ํ•˜๊ณ  ๋‚˜์„œ ๋ฉˆ์ถ˜๋‹ค. break ๋ฅผ ์จ์ฃผ์ง€ ์•Š์œผ๋ฉด, ๋ฐ”๋กœ ๋’ค์˜ case ์˜์—ญ์ด ๋’ค์ด์–ด ์‹คํ–‰๋˜๋‹ˆ ๊ผญ ์จ์ฃผ์ž!
	case "Chrome" : //browser์˜ ๊ฐ’์ด "IE"๊ฐ€ ์•„๋‹ˆ๋ฉด, if์˜ else์ฒ˜๋Ÿผ ์•„๋ž˜์ค„์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.
		case "Firefox" : //break๊ฐ€ ์—†์œผ๋ฉด ์•„๋ž˜ ์ค„์˜ ์ฝ”๋“œ๋„ ์‹คํ–‰๋˜๋Š” ์ ์„ ์ด์šฉํ•ด์„œ, ๊ฐ™์€ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ณ ์ž ํ• ๋• ์ด๋ ‡๊ฒŒ ์งง๊ฒŒ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
		console.log("I love you!");
		break;
	default : //์œ„์˜ ๊ฐ’์ด ๋ชจ๋‘ ์•„๋‹ ๋•Œ ์‹คํ–‰๋œ๋‹ค.
		console.log("same all");
		break; 
}

ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์— ๋งŽ์€ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜,
typescript์—์„œ ์ •ํ•ด์ ธ์žˆ๋Š” type์„ ๊ฒ€์‚ฌํ• ๋•Œ๋Š” if ์—์„œ if..else..if..else..ํ•˜์ง€ ๋ง๊ณ !
switch ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค.


โœŒ๏ธ ๋ฐ˜๋ณต๋ฌธ (Looping Statement)

while loop

let i = 3;

while (i > 0) { //i๊ฐ€ 0๋ณด๋‹ค ํฌ๋‹ˆ? => ์‘!
	console.log(`while: ${i}`); //i๋ฅผ ์ถœ๋ ฅํ•˜๊ณ ,
	i--; //i์˜ ๊ฐ’์„ 1 ๊ฐ์†Œ์‹œํ‚ค๊ณ  => ๋‹ค์‹œ while (i > 0)์œผ๋กœ ๋˜๋Œ์•„๊ฐ€์„œ false๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „๊นŒ์ง€ ๋ฐ˜๋ณต
} //while:3, while:2, while:1 ๊นŒ์ง€ ์ถœ๋ ฅ๋˜๊ณ  ๋”์ด์ƒ ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”๋‹ค.

โ‡’ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ์‹คํ–‰ํ•œ๋‹ค.
(๊ฐ’์ด false๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „๊นŒ์ง€ ๊ณ„์†ํ•ด์„œ ๋ฐ˜๋ณต๋œ๋‹ค.)


do-while loop

let i = 0;

do {
	console.log(`do while: ${i}`); //do while:0์ด ๋จผ์ € ์ถœ๋ ฅ๋œ๋‹ค.
	i--;
} while (i > 0); //๊ทธ ํ›„์— ์กฐ๊ฑด์ด ๋งž๋Š”์ง€ ๊ฒ€์‚ฌ

โ‡’๋ธ”๋Ÿญ{ } ์•ˆ์˜ ์ฝ”๋“œ๋ฅผ ๋ฌด์กฐ๊ฑด 1๋ฒˆ์€ ์‹คํ–‰ํ•œ ๋‹ค์Œ์—, ์กฐ๊ฑด์ด ๋งž๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค.
(์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•˜๊ธฐ ์ „์— ๋จผ์ € 1๋ฒˆ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.)


for loop

for(begin;(์ดˆ๊ธฐ๊ฐ’ ์ •์˜) condition;(์‹คํ–‰ ์กฐ๊ฑด) step(๊ฐฑ์‹ )) ์˜ ๊ตฌ์กฐ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

let i = 2; //์ด๋ฏธ ์ง€์ •๋œ ๋ณ€์ˆ˜
for (i = 3; i > 0; i--) { //๋‹ค์‹œ ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๊ณ (let์ผ ๊ฒฝ์šฐ)
	console.log(`for: ${i}`);
}

์ด๋ ‡๊ฒŒ ์ด๋ฏธ ์ง€์ •๋œ ๋ณ€์ˆ˜์— ๋‹ค์‹œ ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๊ณ  (let์ผ ๊ฒฝ์šฐ)

for (let i = 3; i > 0; i = i - 2) { //๊ธฐ์กด์— ์—†๋˜ ๋ณ€์ˆ˜๋ฅผ { }์•ˆ์— ์ง€์—ญ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
	console.log(`inline variable for: ${i}`);
}

for() ์•ˆ์—์„œ ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜๋„ ์žˆ๋‹ค!
์ด๋ฅผ inline variable declaration (์ธ๋ผ์ธ ๋ณ€์ˆ˜ ์„ ์–ธ) ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
(์ถœ๋ ฅ์€ ์ด๋ ‡๊ฒŒ ๋œ๋‹ค!)

forEach

ํŠน์ • ๊ฐ์ฒด์˜ ์—ด๊ฑฐ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ฃจํ”„ ์ฒ˜๋ฆฌ

const arr = ["item1", "item2", "item3"];

arr.forEach(function (item, index) {
  console.log(item); // item, item2, item3
  console.log(index); // 0, 1, 2
});

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

arr.forEach((item, index) => {
  console.log(item);
  console.log(index);
});

for...in

  • ๊ฐ์ฒด์˜ ์†์„ฑ๋“ค์„ ๋ฐ˜๋ณตํ•ด์„œ ์ž‘์—… ์ˆ˜ํ–‰
  • ๋ชจ๋“  ๊ฐ์ฒด์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • key ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, value ๊ฐ’์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Œ
for (let key in solmi) {
	console.log(key);
} // name, age
const arr = ["item1", "item2", "item3"];

for (let prop in arr) {
  console.log(prop, arr[prop]);
} // 0 item1, 1 item2, 2 item3

for...of

  • [Symbol.iterator] ์†์„ฑ์„ ๊ฐ€์ง€๋Š” ์ปฌ๋ ‰์…˜์—์„œ๋งŒ ๋ฐ˜๋ณต
const arr2 = ["item1", "item2", "item3"];

for(value of arr2) {
	console.log(value);
}

for of ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ

 for(let i = 0; i < arr2.lengh; i++) {
   console.log(value);
}

Symbol.iterator ์†์„ฑ?

Javascript ์ž๋ฃŒํ˜•์˜ Primitive Types ์ค‘ ํ•˜๋‚˜์ธ Symbol์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.
๊ฐ์ฒด์— ๋Œ€์‘ํ•˜๋Š” ๊ธฐ๋ณธ iterator(๋ฐฐ์—ด์ด๋‚˜ ์œ ์‚ฌํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ์˜ ๋‚ด๋ถ€ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋Š” ๊ฐ์ฒด)๋ฅผ ์ง€์ •ํ•˜๊ณ , for..of์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋œ๋‹ค.


nested loop

for (let i = 0; i < 10; i++) {
	for (let j = 0; j < 10; J++) {
		console.log(`i: ${i}, J: ${j}`);
	}
}

for๋ฌธ ์•ˆ์— ๋‹ค์‹œ for๋ฌธ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์œ„์˜ ์˜ˆ์ œ์˜ ๊ฒฝ์šฐ์—๋Š” ์ด๋ ‡๊ฒŒ ์‹คํ–‰๋œ๋‹ค.

i๊ฐ€ 0์ผ๋•Œ, j๊ฐ€ 0~9๊นŒ์ง€ ์‹คํ–‰๋˜๊ณ , ๊ทธ ๋‹ค์Œ ๋‹ค์‹œ i์˜ step์œผ๋กœ ๋Œ์•„๊ฐ€์„œ i๊ฐ€ 1 ์ถ”๊ฐ€๋˜๊ณ , ๊ทธํ›„์— i๊ฐ€ 1์ผ๋•Œ, j๊ฐ€ 0~9๊นŒ์ง€ ์‹คํ–‰๋œ๋‹ค. ๊ณ„์† ๋ฐ˜๋ณต๋˜๋‹ค๊ฐ€, i๊ฐ€ 10์ด ๋˜๋Š” ์ˆœ๊ฐ„, ๋”์ด์ƒ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.


label

break; : ๋ฃจํ”„๋ฅผ ์•„์˜ˆ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์Œ ์ฝ”๋“œ๋กœ ๋„˜์–ด๊ฐ
continue; : ํ˜„์žฌ ๋ฃจํ”„์˜ ๋‚˜๋จธ์ง€ ์ฝ”๋“œ๋ฅผ ๊ฑด๋„ˆ๋œ€

๐Ÿ™…๐Ÿปโ€โ™€๏ธ label์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ์ฝ”๋“œ๋ฅผ ์ข€ ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ฐ”๊ฟ”์„œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์—…์—์„œ๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.


๐Ÿ•น continue๋ž‘ break ์ดํ•ดํ•˜๊ธฐ

Q1) 0๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ์ˆซ์ž ์ค‘, ์ง์ˆ˜์ธ ์ˆซ์ž๋งŒ ์ถœ๋ ฅํ•˜๊ธฐ (continue ์ด์šฉํ•ด์„œ)

for (i = 0; i < 11; i++) {
  if (i % 2 !== 0) {
    continue;
  }
  console.log(`${i}`);
}

์˜ˆ์ œ๋Š” continue ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ €๋ ‡๊ฒŒ ์ž‘์„ฑํ•œ๊ฑฐ์ง€๋งŒ, continue ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๋Š”๊ฒŒ ๋” ์ข‹๋‹ค.

for (let i = 0; i < 11; i++) {
  if (i % 2 === 0) { //์›ํ•˜๋Š” ๊ฐ’์ผ ๋•Œ๋งŒ ๊ฒฐ๊ณผ ์ถœ๋ ฅ
    console.log(`${i}`);
  }
}

Q.2 ) 0๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋˜, 8 ์ด์ƒ์ธ ์ˆซ์ž๋Š” ์ถœ๋ ฅํ•˜์ง€ ๋ง๊ธฐ (break ์ด์šฉํ•ด์„œ)

for (let i = 0; i < 11; i++) {
  if (i === 8) { //8์„ ๋งŒ๋‚˜๋ฉด ๋ฉˆ์ถ”๊ธฐ๋กœ ์ดํ•ดํ•˜๊ณ  ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ i > 8 ๋กœ ์ž‘์„ฑํ•˜๋Š”๊ฒŒ ํ›จ์”ฌ ๊นฐใ…ก๋”
    break;
  }
  console.log(`${i}`);
}
profile
ํ•˜๋ฃจ๋Š” ์น˜์—ดํ•˜๊ฒŒ ์ธ์ƒ์€ ์—ฌ์œ ๋กญ๊ฒŒ

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