Bibi's DevLog ๐Ÿค“๐ŸŽ

[์ธํ”„๋Ÿฐ] Javascript ์ž…๋ฌธ - ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋‚˜?, ์ž๋ฃŒํ˜• ๋ณธ๋ฌธ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Javascript ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

[์ธํ”„๋Ÿฐ] Javascript ์ž…๋ฌธ - ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋‚˜?, ์ž๋ฃŒํ˜•

๋น„๋น„ bibi 2020. 10. 1. 17:13
* ์ด ๊ธ€์€ ์ธํ”„๋Ÿฐ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ˜ธ๋ˆ…์Šค๋‹˜์˜ ์œ ๋ฃŒ ๊ฐ•์˜ '์‰ฝ๊ณ  ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐฐ์›Œ๋ณด๋Š” Javascript ์ž…๋ฌธ - ์ฝ”๋“œ์Šค์ฟผ๋“œ ๋งˆ์Šคํ„ฐ์ฆˆ ์ฝ”์Šค ๋ ˆ๋ฒจ1'๋ฅผ ๋“ฃ๊ณ  ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜ ๋‚ด์šฉ์— ๋”ํ•ด, ์ œ๊ฐ€ ํ•„๊ธฐํ•˜๊ณ  ๊ตฌ๊ธ€๋งํ•œ ๋‚ด์šฉ์ด ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๋ณด์ธ ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋Œ€๋กœ ์ •๋ฆฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ถ€์ •ํ™•ํ•œ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ์„ ๊ฐ์•ˆํ•ด ์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ธํ”„๋Ÿฐ ์ธก ๋‹ต๋ณ€์„ ๋ฐ›์€ ์ ์ด ์žˆ์œผ๋‚˜(https://bibi6666667.tistory.com/37), ์ €์ž‘๊ถŒ์ƒ ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค๋ฉด ๋ณดํ˜ธ ๋ชจ๋“œ(๋น„๊ณต๊ฐœ)๋กœ ์ „ํ™˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 


1

๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐœ๋ฐœํ™˜๊ฒฝ
    • ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ํ…์ŠคํŠธ ์—๋””ํ„ฐ๋งŒ ์žˆ์œผ๋ฉด ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅ.
    • ์ถ”์ฒœํ•˜๋Š” ํ™˜๊ฒฝ
    • OS (์œˆ๋„์šฐ/๋งฅ/๋ฆฌ๋ˆ…์Šค) ์—๋””ํ„ฐ(visual studio code) ์›น๋ธŒ๋ผ์šฐ์ €(ํฌ๋กฌ) git GUI(SourceTree - github Desktop๊ณผ ๋น„์Šท)
  • hello world ์ถœ๋ ฅํ•˜๊ธฐ
    • 'about:blank' - ๊ฐœ๋ฐœ์ž ๋„๊ตฌ - console - console.log('hello, world!')
  • github ๊ฐ€์ž…, ์ƒˆ ํ”„๋กœ์ ํŠธ ์ €์žฅ์†Œ(repository) ๋งŒ๋“ค๊ธฐ
    • ๋งŒ๋“  repository๋ฅผ SourceTree๋ฅผ ์ด์šฉํ•ด clone ํ•ด ์˜ค๊ธฐ (์›น->๋กœ์ปฌ)
    • ๋‚˜๋Š” onedrive-๋ฌธ์„œ-learningJavascript!
  • Hello, world ์ถœ๋ ฅํ•˜๊ธฐ
    • console.log('Hello,world!');
    • console ์— log๋ฅผ ๋‚จ๊ฒจ๋ผ.
    • . ์€ '-ํ•˜๋ผ' ๋˜๋Š” '-์˜' ๋ผ๋Š” ๋œป.
  • github์— ์˜ฌ๋ฆฌ๊ธฐ(SourceTreeํ™œ์šฉ)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋‚˜?

= ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” HTML์„ '๋™์ ์œผ๋กœ' ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

  • : ๋ฌธ์„œ ์œ ํ˜•=html์ด๋‹ค.

  • ์š”์†Œelement : ํƒœ๊ทธ์™€ ๊ฐ™์€ ๊ฒƒ๋“ค?

  • ํƒœ๊ทธtag : ์—ฌ๋Š” ํƒœ๊ทธ<> ์™€ ๋‹ซ๋Š” ํƒœ๊ทธ</>. html์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•
    โ€ป ํ•œ๊ธ€์ด ๊นจ์งˆ ๋•Œ : head์— ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

  • ; : ๋ช…๋ น์ด ๋๋‚ฌ์Œ์„ ์•Œ๋ฆฌ๋Š” ๋ถ€ํ˜ธ. ๋ช…๋ น ๋์— ๋ฐ˜๋“œ์‹œ ๋ถ™์ธ๋‹ค.

  • ์˜ˆ๋ฅผ ๋“ค์–ด..

    • htmlํŒŒ์ผ ๋‚ด์˜ ๊ธ€์”จ ๋‚ด์šฉ/์ƒ‰๊น”/๋ฐฐ๊ฒฝ์ƒ‰๊น”/ํฌ๊ธฐ.. ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.
    • ๊ฐ€๋งŒํžˆ ์žˆ๋Š” ์›นํŽ˜์ด์ง€ ํ™”๋ฉด์„ ์›€์ง์ด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ž๋ฃŒํ˜•

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ• 1 - ์ž๋ฃŒํ˜•.

  • ์ž๋ฃŒํ˜• Data type (๋ฐ์ดํ„ฐ ์œ ํ˜•) ์ด๋ž€?

    • ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ธ์ง€ ์ปดํ“จํ„ฐ์—๊ฒŒ ์•Œ๋ ค์คŒ.
    • ๊ฐ ์ž๋ฃŒํ˜•๋งˆ๋‹ค ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์—ฐ์‚ฐ์žOperator๊ฐ€ ๋”ฐ๋กœ ์žˆ์Œ.
    • ์ž๋ฃŒํ˜•์ด ๊ฐ™์•„์•ผ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.. ์ˆซ์ž๋Š” ์ˆซ์ž๋ผ๋ฆฌ, ๋ฌธ์ž์—ด์€ ๋ฌธ์ž์—ด๋ผ๋ฆฌ.
  • ์ž๋ฃŒํ˜•์˜ ์ข…๋ฅ˜ - ์ผ๋‹จ ์ด๋Ÿฐ ๊ฒŒ ์žˆ๋‹ค๋Š” ๊ฑธ ์•Œ์•„๋งŒ ๋‘ฌ๋ผ.

    1. Number : ์ˆซ์ž
    2. String : ๋ฌธ์ž์—ด(ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฌธ์ž๋“ค)
    3. Boolean : ์ฐธ/๊ฑฐ์ง“(๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž)
    4. Null : ๋น„์–ด์žˆ๋‹ค (<-> Not Null : ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค)
    5. Undefined : ์ •์˜๋˜์ง€ ์•Š์•˜๋‹ค
    6. Object ๊ฐ์ฒด : ์œ„์˜ 5๊ฐ€์ง€ ์™ธ์— ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ object์— ํ•ด๋‹น.
    • ์ง€๊ธˆ์€ number, string, boolean๋งŒ ์•Œ์•„๋ณผ ๊ฒƒ. ๋‚˜๋จธ์ง€๋Š” ๋‚˜์ค‘์—!

โ€ป NaN : Not a Number ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋‹ค.
โ€ป typeof ์—ฐ์‚ฐ์ž
: ์ž๋ฃŒํ˜•์„ ์•Œ๋ ค์ฃผ๋Š” ์ค‘์š”ํ•œ ์—ฐ์‚ฐ์ž.

  • typeof 5; -> 'number'
  • typeof '123'; -> 'string'
  1. Number type ์ˆซ์ž
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ •์ˆ˜(INTeger), ์‹ค์ˆ˜(float / double) ๋ชจ๋‘ numberํƒ€์ž…์œผ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค.
    • ์ˆซ์ž์˜ ์—ฐ์‚ฐ์ž : ์‚ฌ์น™์—ฐ์‚ฐ + - * / , ๊ด„ํ˜ธ( ), ๋‚˜๋จธ์ง€ % ...
  2. String ๋ฌธ์ž์—ด
    • ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์œผ๋ฉด ๋ฌธ์ž์—ด๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค.
    • ๋ฌธ์ž์—ด๋„ ๋”ํ•˜๊ธฐ๊ฐ€ ๋œ๋‹ค. (๋”ํ•˜๊ธฐ๋งŒ ๋œ๋‹ค)
    • ์ˆซ์ž์™€ ๋ฌธ์ž์—ด์„ ๋”ํ•˜๋Š” ์—ฐ์‚ฐ์—์„œ๋Š” ๋ชจ๋“  ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค.
    • 5 + '4'; -> '54'
    • ์ˆซ์ž์™€ ๋ฌธ์ž์—ด์„ ๊ณฑํ•˜๋Š” ์—ฐ์‚ฐ์—์„œ๋Š” ๋ฐ˜๋Œ€๋กœ ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค. (๋‹จ, ๋ฌธ์ž๊ฐ€ '์ˆซ์ž'์ด๋ฉด)
    • 5 * '4'; -> 20
    • 5 * 'hello'; -> NaN
    • ๋ฌธ์ž์—ด์€ "Immutable"(๋ถˆ๋ณ€)์˜ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค -> ์ผ๋‹จ ์•Œ์•„๋งŒ ๋‘๊ธฐ.
  3. Boolean ๋ถˆ๋ฆฌ์–ธ (true / false)
    • ์กฐ๊ฑด์‹ ๋“ฑ์—์„œ ์ฐธ์ด๋ฉด true, ๊ฑฐ์ง“์ด๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•จ.
    • 5 > 3 ; -> true
    • 5 == 3 ; -> false
    • 5 > 5 ; -> false
    • ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž : boolean์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์ž.
    • && : = and(๊ทธ๋ฆฌ๊ณ ). ๋‘˜ ๋‹ค true(์ฐธ) ์ผ ๋•Œ true๋ฅผ ๋ฐ˜ํ™˜.
    • || : = or(๋˜๋Š”). ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ true(์ฐธ) ์ผ ๋•Œ true๋ฅผ ๋ฐ˜ํ™˜.
    • ! : = not(์•„๋‹Œ). true (๋˜๋Š” true์ธ ๊ฐ’) ์•ž์— ๋ถ™์ด๋ฉด false๋ฅผ, false (๋˜๋Š” false์ธ ๊ฐ’) ์•ž์— ๋ถ™์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜.
    • โ€ป ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—ฐ์‚ฐ์ž
      • + - * / : ์‚ฌ์น™์—ฐ์‚ฐ (๋”ํ•˜๊ธฐ ๋นผ๊ธฐ ๊ณฑํ•˜๊ธฐ ๋‚˜๋ˆ„๊ธฐ)
      • % : ๋‚˜๋จธ์ง€ ๊ตฌํ•˜๊ธฐ.

      • === (= 3๊ฐœ) : ๊ฐ™๋‹ค.

      • != : ๊ฐ™์ง€ ์•Š๋‹ค.

      • : ~๋ณด๋‹ค ํฌ๋‹ค.

      • < : ~๋ณด๋‹ค ์ž‘๋‹ค.

      • = : ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

      • <= : ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

 

โ€ป ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ =, ==, === ๋น„๊ต (๊ตฌ๊ธ€๋ง)

  • = : ๊ฐ’value์„ ์ •์˜ํ•จ. (์ขŒํ•ญ์„ ์šฐํ•ญ์œผ๋กœ ์ •์˜ํ•จ)
    • number = 3
    • number; -> 3
  • == : equality (๋™๋“ฑ ์—ฐ์‚ฐ์ž).
    • ์ขŒํ•ญ๊ณผ ์šฐํ•ญ์„ ๋™๋“ฑํ•œ ์กฐ๊ฑด์—์„œ ๋น„๊ตํ•จ. ์„œ๋กœ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์„ ๋น„๊ตํ•˜๋ฉด ๊ฐ•์ œ ํ˜•๋ณ€ํ™˜์ด ์ด๋ฃจ์–ด์ง.
  • === : identity (์ผ์น˜ ์—ฐ์‚ฐ์ž).
    • ์ขŒํ•ญ๊ณผ ์šฐํ•ญ์ด ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š”์ง€๋ฅผ ํŒ๋‹จํ•จ. ๊ฐ•์ œ ํ˜•๋ณ€ํ™˜์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•„ ๋” ์ •ํ™•ํ•œ ๋น„๊ต ๊ฐ€๋Šฅ.
      ์˜ˆ๋ฅผ ๋“ค์–ด..
  • 5 == '5' -> true
    • ์–‘๋ณ€์„ ๋™๋“ฑํ•œ ์กฐ๊ฑด์—์„œ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด, ํ•œ ์ž๋ฃŒํ˜•์€ ๊ฐ•์ œ๋กœ ํ˜•๋ณ€ํ™˜๋จ. ์ฆ‰ 5 == 5 (๋˜๋Š” '5'=='5') ์ด๋ฏ€๋กœ true๋ฅผ ๋ฐ˜ํ™˜.
  • 5 === '5' -> false
    • ์–‘๋ณ€์ด ์ผ์น˜ํ•˜๋Š”์ง€ ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, 5์™€ '5'๋Š” ๋‹ค๋ฅด๋ฏ€๋กœ false๋ฅผ ๋ฐ˜ํ™˜.

*** ๋งˆํฌ๋‹ค์šด์œผ๋กœ ํ•„๊ธฐํ–ˆ๋”๋‹ˆ ๋ถ€ํ˜ธ๋“ค ๋•Œ๋ฌธ์— ๋‚ด์šฉ์ด ๊นจ์ง„๋‹คใ…  ๊ทธ๋ƒฅ ๋‹ค์Œ์—๋Š” ๊ธฐ๋ณธ๋ชจ๋“œ๋กœ ์ ์–ด์•ผ๊ฒ ๋‹ค.