๐Ÿฆ_21.11.29 TIL

Boriยท2021๋…„ 11์›” 29์ผ
1
post-thumbnail

21๋…„ 11์›” 29์ผ

์ฝ์–ด๋ณด๊ธฐ

๐Ÿ“ Javascript

์ถœ๋ ฅ๋ฐฉ๋ฒ• 4๊ฐ€์ง€

window.console.log("hello world");
document.write("hello world");
window.alert("hello world");
document.body.innerHTML = "hello world";

window์™€ document์˜ ์ฐจ์ด์ 

  • window ๊ฐ์ฒด๋Š” ๋ธŒ๋ผ์šฐ์ € ํƒญ์— ์กด์žฌํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ „์—ญ ์ตœ์ƒ์œ„ ๊ฐ์ฒด
  • window ๊ฐ์ฒด ์•ˆ์— document ๊ฐ์ฒด๊ฐ€ ์กด์žฌํ•˜๊ณ , document ์ž ์žฌ์ ์œผ๋กœ ๋ณด์—ฌ์งˆ ์ˆ˜ ์žˆ๋Š” DOM์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Window / Document ๋ฌด์Šจ ์ฐจ์ด์ผ๊นŒ?

์†์„ฑ ์ ‘๊ทผ์ž(Property accessors)

  • ์ (.) ๋˜๋Š” ๊ด„ํ˜ธ([]) ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๊ฐ์ฒด์˜ ์†์„ฑ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
object.property
object['property']

์†์„ฑ ์ ‘๊ทผ์ž - MDN

console

  • console ๊ฐ์ฒด๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ๋””๋ฒ„๊น… ์ฝ˜์†”(Firefox ์›น ์ฝ˜์†” ๋“ฑ)์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณต
  • ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ
    • console.log() : ์ผ๋ฐ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ
    • console.dir() : ์ฃผ์–ด์ง„ JavaScript ๊ฐ์ฒด์˜ ์†์„ฑ ๋ชฉ๋ก์„ ์ƒํ˜ธ์ž‘์šฉ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ํ‘œ์‹œ
    • console.error() : ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ
    • console.table() : ํ‘œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์— ๊ทธ๋ฆผ

๐Ÿ“Ž Javascript์˜ ์—ฐ์‚ฐ

์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

์‚ฌ์น™์—ฐ์‚ฐ์„ ๋‹ค๋ฃจ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๋ฉด์„œ๋„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž
=> ์™ผ์ชฝ ๊ฐ’์— ์˜ค๋ฅธ์ชฝ ๊ฐ’์„ ์—ฐ์‚ฐ

  • + : ๋ง์…ˆ
  • - : ๋บ„์…ˆ
  • * : ๊ณฑ์…ˆ
  • ** : ์ œ๊ณฑ
  • / : ๋‚˜๋ˆ—์…ˆ์˜ ๋ชซ
  • % : ๋‚˜๋ˆ—์…ˆ์˜ ๋‚˜๋จธ์ง€

a = a + b์ผ ๊ฒฝ์šฐ, ์™œ a = a๊ฐ€ ๋จผ์ € ์—ฐ์‚ฐ๋˜์ง€ ์•Š๊ณ  a + b๊ฐ€ ๋จผ์ € ์—ฐ์‚ฐ์ด ๋˜๋‚˜์š”?

์šฐ์„ ์ˆœ์œ„๋ฅผ ์™ธ์›Œ๋‘๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ์š”?

  • ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
  • ์‹ค๋ฌด์—์„œ ์ƒ๋Œ€๋ฐฉ์ด ์šฐ์„ ์ˆœ์œ„๋ฅผ ์•Œ๋“  ๋ชจ๋ฅด๋“  ์ƒ๋Œ€๋ฐฉ์ด ์ฝ”๋“œ๋ฅผ ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค.
    => ํ•˜์ง€๋งŒ ํšŒ์‚ฌ์˜ ์ปจ๋ฒค์…˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ํฐ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ข‹์ง€ ๋ชปํ•œ ์ฝ”๋“œ๊ฐ€ ๋˜์ง€ ์•Š์„๊นŒ์š”? ์œ ์ง€๋ณด์ˆ˜๋„ ์–ด๋ ค์šธ ๊ฒƒ ๊ฐ™์•„์š”.

  • ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ๋„ ๋ณต์žกํ•œ ๊ฒƒ๋ณด๋‹ค ๋ณด๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๊ฐ€ ๋” ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”.

ํ• ๋‹น(๋Œ€์ž…) ์—ฐ์‚ฐ์ž

  • += : ๋ง์…ˆ ํ›„ ํ• ๋‹น
    a += 4 == a = a + 4
  • -= : ๋บ„์…ˆ ํ• ๋‹น
  • *= : ๊ณฑ์…ˆ ํ• ๋‹น
  • /= : ๋‚˜๋ˆ—์…ˆ ํ• ๋‹น

์ฆ๊ฐ ์—ฐ์‚ฐ์ž

  • ++x : ๋จผ์ € ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ 1 ์ฆ๊ฐ€์‹œํ‚จ ํ›„์— ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์ง„ํ–‰
  • x++ : ๋จผ์ € ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚˜์„œ, ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ 1 ์ฆ๊ฐ€
  • --x : ๋จผ์ € ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ 1 ๊ฐ์†Œ์‹œํ‚จ ํ›„์— ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์ง„ํ–‰
  • x-- : ๋จผ์ € ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚˜์„œ, ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ 1 ๊ฐ์†Œ

๋น„๊ต ์—ฐ์‚ฐ์ž

๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” ํ”ผ์—ฐ์‚ฐ์ž ์‚ฌ์ด์˜ ์ƒ๋Œ€์ ์ธ ํฌ๊ธฐ๋ฅผ ํŒ๋‹จํ•˜์—ฌ, ์ฐธ(true)๊ณผ ๊ฑฐ์ง“(false)์„ ๋ฐ˜ํ™˜

  • == : ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์ด ๊ฐ™์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜
  • ===(Strict equality) : ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์ด ๊ฐ™๊ณ , ๊ฐ™์€ ํƒ€์ž…์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜
  • != : ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์ด ๊ฐ™์ง€ ์•Š์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜
  • !==(Strict-non-equality) : ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์ด ๊ฐ™์ง€ ์•Š๊ฑฐ๋‚˜, ํƒ€์ž…์ด ๋‹ค๋ฅด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜
  • < : ์ž‘๋‹ค
  • <= : ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค
  • > : ํฌ๋‹ค
  • >= : ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋Š” ์ฃผ์–ด์ง„ ๋…ผ๋ฆฌ์‹์„ ํŒ๋‹จํ•˜์—ฌ, ์ฐธ(true)๊ณผ ๊ฑฐ์ง“(false)์„ ๋ฐ˜ํ™˜

  • && : ๋…ผ๋ฆฌ AND ์—ฐ์‚ฐ
  • || : ๋…ผ๋ฆฌ OR ์—ฐ์‚ฐ
  • ! : ๋…ผ๋ฆฌ NOT ์—ฐ์‚ฐ

typeof ์—ฐ์‚ฐ์ž

๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ฐ์‚ฐ์ž
=> ์ž‘์„ฑ์ค‘์ž…๋‹ˆ๋‹ค:)

ํƒ€์ž…์˜ ํ˜• ๋ณ€ํ™˜

=> ์ž‘์„ฑ์ค‘์ž…๋‹ˆ๋‹ค:)

๐Ÿ“Ž ์กฐ๊ฑด๋ฌธ

  • ์กฐ๊ฑด์ด ์ฐธ(true)์ธ์ง€ ๊ฑฐ์ง“(false)์ธ์ง€์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จ

if ๋ฌธ

  • ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰, ๊ฑฐ์ง“์ด๋ฉด ์‹คํ–‰ํ•˜์ง€ ์•Š์Œ
if (์กฐ๊ฑด) {
  // ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
}

if-else ๋ฌธ

  • if๋ฌธ ๋‚ด์˜ ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด if ๋ธ”๋ก ๋‚ด์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰, ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ else ๋ธ”๋ก ๋‚ด์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰
// if-else ๋ฌธ
if (์กฐ๊ฑด) {
  // ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
} else {
  // ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
}

else if ๋ฌธ

  • else if ๋ฌธ์„ ์ด์šฉํ•ด์„œ ๋‹ค์–‘ํ•œ ์กฐ๊ฑด์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ค‘์ฒฉ๋œ if๋ฌธ์„ ์ข€ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘œํ˜„ ๊ฐ€๋Šฅ
if (์กฐ๊ฑด1) {
  // ์กฐ๊ฑด1์ด ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
} else if (์กฐ๊ฑด 2) {
  // ์กฐ๊ฑด2๊ฐ€ ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
} else if (์กฐ๊ฑด 3) {
  // ์กฐ๊ฑด3์ด ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
} else { 
  // ์œ„์˜ ์กฐ๊ฑด์— ์ „๋ถ€ ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
}

์‚ผํ•ญ ์—ฐ์‚ฐ์ž

// ํ‘œํ˜„์‹์ด ์ฐธ์ด๋ฉด ๋ฐ˜ํ™˜๊ฐ’1, ๊ฑฐ์ง“์ด๋ฉด ๋ฐ˜ํ™˜๊ฐ’2
ํ‘œํ˜„์‹ ? ๋ฐ˜ํ™˜๊ฐ’1 : ๋ฐ˜ํ™˜๊ฐ’2

์‚ผํ•ญ ์—ฐ์‚ฐ์ž ๋Œ€์ฒด ์šฉ๋ฒ•

true && '์™„๋ฃŒ' || '๋ฏธ์™„๋ฃŒ';

  • ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋‚˜ ์ด๋Ÿฌํ•œ ๋Œ€์ฒด ์šฉ๋ฒ•์€ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.
    => ์‹ค๋ฌด์—์„œ๋Š” ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ
  • ์ฃผ์„ ์—†์ด๋„ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ง€ํ–ฅ

switch ๋ฌธ

  • if-else๋ฌธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฃผ์–ด์ง„ ์กฐ๊ฑด ๊ฐ’์— ๋”ฐ๋ผ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค๋ฅธ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์กฐ๊ฑด๋ฌธ
  • default์ ˆ์€ ์กฐ๊ฑด ๊ฐ’์ด ์œ„์— ๋‚˜์—ด๋œ ์–ด๋– ํ•œ case์ ˆ์—๋„ ํ•ด๋‹นํ•˜์ง€ ์•Š์„ ๋•Œ ์‹คํ–‰
switch (์กฐ๊ฑด ๊ฐ’) {
  case ๊ฐ’1:
    ์กฐ๊ฑด ๊ฐ’์ด ๊ฐ’1์ผ ๋•Œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ์‹คํ–‰๋ฌธ;
    break;
  case ๊ฐ’2:
    ์กฐ๊ฑด ๊ฐ’์ด ๊ฐ’2์ผ ๋•Œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ์‹คํ–‰๋ฌธ;
    break;
    ...
  default:
    ์กฐ๊ฑด ๊ฐ’์ด ์–ด๋– ํ•œ case ์ ˆ์—๋„ ํ•ด๋‹นํ•˜์ง€ ์•Š์„ ๋•Œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ์‹คํ–‰๋ฌธ;
    break;
}

๐Ÿ“Ž ๋ฐ˜๋ณต๋ฌธ

  • ๋ฐ˜๋ณต๋ฌธ : ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ๋˜‘๊ฐ™์€ ๋ช…๋ น์„ ์ผ์ • ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜์—ฌ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ œ์–ดํ•˜๋Š” ์‹คํ–‰๋ฌธ

for๋ฌธ

  • ์ดˆ๊ธฐ์‹, ํ‘œํ˜„์‹, ์ฆ๊ฐ์‹์„ ๋ชจ๋‘ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๋ฐ˜๋ณต๋ฌธ
for (์ดˆ๊ธฐ์‹; ํ‘œํ˜„์‹; ์ฆ๊ฐ์‹) {
 ํ‘œํ˜„์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ธ ๋™์•ˆ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ์‹คํ–‰๋ฌธ; 
}

// ๋ฌดํ•œ๋ฃจํ”„
for (;;) { ... }

// ๊ตฌ๊ตฌ๋‹จ 
for (let i = 2; i < 10; i++) {
  for (let j = 1; j < 10; j++) {
    console.log(`${i} X ${j} = ${i * j}`);
  }
}
// ์ถœ๋ ฅ ๊ฒฐ๊ณผ
// 2 X 1 = 2
// 2 X 2 = 4
// 2 X 3 = 6
// ...
// 2 X 9 = 18
// ...
// 9 X 9 = 81

์ฐธ๊ณ ๋งํฌ


๋งˆ๋ฌด๋ฆฌ

  • ์ ์  ์ƒ๊ฐ์ด ๋งŽ์•„์ง€๋Š” ๊ธฐ๋ถ„์ด๋‹ค? ํ•˜ํ•˜ํ•˜
    => ๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ•ด๋ณด๊ธฐ๋กœ ํ•œ๋‹ค
  • ํƒ€์ž๋ฅผ ๋น ๋ฅด๊ฒŒ ์น˜๋„๋ก ์˜์‹ํ•ด์•ผ๊ฒ ๋‹ค.
  • ์นดํŽ˜์—์„œ ์ปคํ”ผ๋ฅผ ์Ÿ์•˜๋‹ค
    => ์Ÿ์€ ์ปคํ”ผ ๋‹ฆ๋Š๋ผ ์ •์‹ ์ด ์—†์—ˆ๋‹ค.
    => ๋‹คํ–‰ํžˆ ๋…ธํŠธ๋ถ์€ ์ „ํ˜€ ํ”ผํ•ด๊ฐ€ ์—†๋Š”... ํœด
  • ์ฃผ๋ฌธํ•œ ์ฑ…... ์˜ค๋Š˜ ๋„์ฐฉํ•  ์ค„ ์•Œ์•˜๋Š”๋ฐ ๊ฐ๊ฐ๋ฌด์†Œ์‹
    => ๋‚ด์ผ์€ ์˜ค๊ฒ ์ง€ ์˜ˆ์—์—์—์—-

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