🌸05μž₯. ν‘œν˜„μ‹κ³Ό λ¬Έ

βœ…5.1 μš©μ–΄ 정리

κ°’(value)

πŸ‘‰Β ν‘œν˜„μ‹(expression)이 평가(evaluate)λ˜μ–΄ μƒμ„±λœ κ²°κ³Ό
  • 평가(evaluate) : 식을 ν•΄μ„ν•΄μ„œ 값을 μƒμ„±ν•˜κ±°λ‚˜ μ°Έμ‘°ν•˜λŠ” 것

  • λͺ¨λ“  값은 데이터 νƒ€μž…μ„ 가지며, λ©”λͺ¨λ¦¬μ— 2μ§„μˆ˜(bit의 λ‚˜μ—΄)둜 μ €μž₯λœλ‹€.

    • λ©”λͺ¨λ¦¬μ— μ €μž₯된 값은 데이터 νƒ€μž…μ— 따라 λ‹€λ₯΄κ²Œ 해석될 수 μžˆλ‹€.

λ¦¬ν„°λŸ΄(literal)

πŸ‘‰Β μ‚¬λžŒμ΄ 이해할 수 μžˆλŠ” 문자 λ˜λŠ” μ•½μ†λœ 기호λ₯Ό μ‚¬μš©ν•΄ 값을 μƒμ„±ν•˜λŠ” ν‘œκΈ°λ²•(notation)
  • 숫자 λ¦¬ν„°λŸ΄ 3 을 μ½”λ“œμ— 기술 β†’ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 평가(evaluate) ν•΄ 숫자 κ°’ 3을 생성

  • μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 λŸ°νƒ€μž„μ— λ¦¬ν„°λŸ΄μ„ 평가해 값을 μƒμ„±ν•œλ‹€.

ν‘œν˜„μ‹(expression)

πŸ‘‰Β κ°’μœΌλ‘œ 평가될 수 μžˆλŠ” λ¬Έ(statement)
- ν‘œν˜„μ‹μ΄ ν‰κ°€λ˜λ©΄ β†’ μƒˆλ‘œμš΄ 값을 μƒμ„±ν•˜κ±°λ‚˜ κΈ°μ‘΄ 값을 μ°Έμ‘°ν•œλ‹€.

μ˜ˆμ‹œλ₯Ό 톡해 μ‚΄νŽ΄λ³΄μž..

var score = 100;
// 100은 λ¦¬ν„°λŸ΄
// λ¦¬ν„°λŸ΄ 100은 μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 μ˜ν•΄ ν‰κ°€λ˜μ–΄ 값을 μƒμ„±ν•˜λ―€λ‘œ ν‘œν˜„μ‹ O

var score = 50 + 50;
// 50+50은 λ¦¬ν„°λŸ΄κ³Ό μ—°μ‚°μž
// 505+50도 ν‰κ°€λ˜μ–΄ 숫자 100을 μƒμ„±ν•˜λ―€λ‘œ ν‘œν˜„μ‹ O

score; // -> 100
// λ³€μˆ˜ μ‹λ³„μžλ₯Ό μ°Έμ‘°ν•˜λ©΄ λ³€μˆ˜ κ°’μœΌλ‘œ ν‰κ°€λœλ‹€.
// μ‹λ³„μž μ°Έμ‘°λŠ” 값을 μƒμ„±ν•˜μ§€λŠ” μ•Šμ§€λ§Œ κ°’μœΌλ‘œ ν‰κ°€λ˜λ―€λ‘œ ν‘œν˜„μ‹ O
  • 즉, κ°’μœΌλ‘œ 평가될 수 μžˆλŠ” λ¬Έ(statement)은 λͺ¨λ‘ ν‘œν˜„μ‹(expression)이닀.

λ¬Έ(statement)

πŸ‘‰Β ν”„λ‘œκ·Έλž¨μ„ κ΅¬μ„±ν•˜λŠ” κΈ°λ³Έ λ‹¨μœ„μ΄μž μ΅œμ†Œ μ‹€ν–‰ λ‹¨μœ„
  • 문의 μ§‘ν•©μœΌλ‘œ 이루어진 것 : ν”„λ‘œκ·Έλž¨

  • 문을 μž‘μ„±ν•˜κ³  μˆœμ„œμ— 맞게 λ‚˜μ—΄ν•˜λŠ” 것 : ν”„λ‘œκ·Έλž˜λ°

세미클둠(;)

세미클둠(;)은 문의 μ’…λ£Œλ₯Ό λ‚˜νƒ€λ‚Έλ‹€.
  • μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 μ„Έλ―Έν΄λ‘ μœΌλ‘œ 문이 μ’…λ£Œν•œ μœ„μΉ˜λ₯Ό νŒŒμ•…ν•˜κ³  순차적으둜 ν•˜λ‚˜μ”© 문을 μ‹€ν–‰ν•œλ‹€.

  • if, for, ν•¨μˆ˜ λ“±κ³Ό 같이 0개 μ΄μƒμ˜ 문을 μ€‘κ΄„ν˜Έλ‘œ 묢은 μ½”λ“œλΈ”λŸ­ λ’€μ—λŠ” 세미클둠을 뢙이지 μ•ŠλŠ”λ‹€.

    • μ΄λŸ¬ν•œ μ½”λ“œλΈ”λ‘μ€ 자체 μ’…κ²°μ„±(self closing)을 κ°–κΈ° λ•Œλ¬Έ

  • 사싀 세미클둠은 μ˜΅μ…˜μ΄λ‹€.

    • μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 μ†ŒμŠ€μ½”λ“œλ₯Ό 해석할 λ•Œ, 문의 끝이라고 μ˜ˆμΈ‘λ˜λŠ” 지점에 μ„Έλ―Έμ½œλ‘ μ„ μžλ™(암묡적)으둜 λΆ™μ—¬μ£ΌκΈ° λ•Œλ¬Έμ΄λ‹€. feat μ„Έλ―Έμ½œλ‘  μžλ™ μ‚½μž… κΈ°λŠ₯(ASI, automatic semicolon insertion)

βœ…5.2 λ¬Έ(statement) vs ν‘œν˜„μ‹(expression)

λ¬Έ(statement) vs ν‘œν˜„μ‹(expression)

❗문(statement)κ³Ό ν‘œν˜„μ‹(expression)은 λ‹€λ₯Έ 것이닀!

ν‘œν˜„μ‹μΈ λ¬Έκ³Ό ν‘œν˜„μ‹μ΄ μ•„λ‹Œ λ¬Έ

❗문(statement)μ—λŠ” "ν‘œν˜„μ‹μΈ λ¬Έ"κ³Ό "ν‘œν˜„μ‹μ΄ μ•„λ‹Œ λ¬Έ"이 μžˆλ‹€.

- ν‘œν˜„μ‹μΈ λ¬Έ : κ°’μœΌλ‘œ 평가 될 수 μžˆλŠ” λ¬Έ
- ν‘œν˜„μ‹μ΄ μ•„λ‹Œ λ¬Έ : κ°’μœΌλ‘œ 평가될 수 μ—†λŠ” λ¬Έ

μ•„λž˜ 예제λ₯Ό μ‚΄νŽ΄λ³΄λ©΄,

var x; // λ³€μˆ˜ μ„ μ–Έλ¬Έ
x = 1 + 2; // ν• λ‹Ήλ¬Έ
  • λ³€μˆ˜ 선언문은 κ°’μœΌλ‘œ 평가될 수 μ—†κΈ° λ•Œλ¬Έμ— ν‘œν˜„μ‹μ΄ μ•„λ‹Œ λ¬Έ

  • 할당문은 κ·Έ μžμ²΄κ°€ ν‘œν˜„μ‹μ΄μ§€λ§Œ μ™„μ „ν•œ λ¬Έ(즉, ν‘œν˜„μ‹μΈ λ¬Έ)

  • ν‘œν˜„μ‹μΈ 문은 ν• λ‹Ήν•œ κ°’μœΌλ‘œ ν‰κ°€λ˜κΈ° λ•Œλ¬Έμ—, κ°’μ²˜λŸΌ μ‚¬μš©ν•  수 μžˆλ‹€.

Last updated