
JavaScriptμ μ°μ°μμ λν΄ μμ보μ.
μ°μ μ°μ°μ operatorμ μ μλ₯Ό μμ보μ.
νλ μ΄μμ ννμμ λμμΌλ‘,
μ°μ , ν λΉ, λΉκ΅, λ
Όλ¦¬, νμ
, μ§μ μ°μ° λ±μ μνν΄μ,
νλμ κ°μ λ§λλ κ²μ΄λ€.
μ°μ°μ λμμ λλ κ²μ νΌμ°μ°μλΌκ³ νλλ°, μ΄ νΌμ°μ°μλ ννμμ΄μ΄μΌ νλ€.
κ·Έλ¬λκΉ, κ°μΌλ‘ νκ°λ μ μμ΄μΌλ§ νλ€λ λ»μ΄λ€.
μ°μ°μμ μ’
λ₯μ λν΄ μμ보μ.
νΌμ°μ°μλ₯Ό λμμΌλ‘ μνμ κ³μ° μ μνν΄μ, μλ‘μ΄ μ«μκ°μ λ§λλ μ°μ°μμ΄λ€.
μ°μ μ°μ°μ΄ λΆκ°λ₯ν κ²½μ°μλ, NaN μ΄λΌλ κ°μ λ°ννλ€.
νΌμ°μ°μμ κ°μμ λ°λΌ, μ°μ μ°μ°μμ μ’ λ₯λ λκ°μ§λ‘ λλλ€.
+, -, *, /, %
νΌμ°μ°μκ° 2κ°μΈ μ°μ°μμ΄λ€.
μ΄λ€ μ°μ μ°μ°μ νλλΌλ, νΌμ°μ°μμ κ°μ΄ λ°λλ κ²½μ°(side effect)λ μλ€.
++, --, +, -
νΌμ°μ°μκ° νλμΈ μ°μ°μμ΄λ€.
μ¦κ°μ°μ°μμΈ ++, --μ κ²½μ°, λΆμν¨κ³Όκ° μ‘΄μ¬νλ€.
+, -λ, λ§μ
λΊμ
μ΄ μλλ€.
μ«μνμ
μ΄ μλ νΌμ°μ°μμ +λ₯Ό μ¬μ©νλ©΄, νΌμ°μ°μλ₯Ό μ«μνμ
μΌλ‘ λ³νν κ°μ μμ±ν΄ λ°ννλ€.
λ§μ°¬κ°μ§λ‘ -λ₯Ό μ¬μ©νλ©΄, νΌμ°μ°μλ₯Ό μ«μνμ
μΌλ‘ λ³νν΄ λΆνΈλ₯Ό λ°μ ν κ°μ μμ±ν΄ λ°ννλ€.
μ΄ν μ°μ μ°μ°μμ +λ, νΌμ°μ°μ μ€ νλ μ΄μμ΄ λ¬Έμμ΄μΈ κ²½μ°, λ¬Έμμ΄ μ°κ²° μ°μ°μλ‘ λμνλ€.
μ£Όμν μ μ, 1 + true μ κ²½μ°,
JavaScript μμ§μ΄ trueλ₯Ό μ«μνμ
μΈ 1λ‘ κ°μ νμ
λ³νμ ν νμ μ°μ°μ μννλ€.
μ΄μ²λΌ κ°λ°μκ° μλμΉ μμμ§λ§ νμ μ΄ λ³νλλ κ²μ μ묡μ νμ λ³ν(implicit coercion)μ΄λΌκ³ νλ€.
μ°νμ μλ νΌμ°μ°μμ νκ° κ²°κ³Όλ₯Ό, μ’νμ μλ λ³μμ ν λΉνλ μ°μ°μμ΄λ€.
λ³μμ κ°μ λμ νκΈ° λλ¬Έμ, λΉμ°ν λ³μμ κ°μ΄ λ³νλ side effect κ° μΌμ΄λλ€.
=, +=, -=, *=, /=, %=
ν λΉλ¬Έμ, κ°μΌλ‘ ννλλ ννμμΈ λ¬Έμ΄λΌκ³ μ 리ν λ° μλ€. κ·Έλ κΈ° λλ¬Έμ ν λΉλ¬Έ μ체λ₯Ό λ³μμ ν λΉνλ κ²λ κ°λ₯νλ€.
μ’νκ³Ό μ°νμ νΌμ°μ°μλ₯Ό λΉκ΅ν λ€μ, κ·Έ κ²°κ³Όλ₯Ό boolean νμ
μ κ°μΌλ‘ λ°ννλ μ°μ°μμ΄λ€.
==, ===, !=, !==
if, forλ¬Έ κ°μ μ μ΄λ¬Έμ 쑰건μμμ μ£Όλ‘ μ¬μ©νλ μ°μ°μμ΄λ€.
μ¬κΈ°μ μ£Όμν μ μ ==, ===μ μ¬μ©μ΄λ€.
λμ μ°¨μ΄κ° μ΄ν΄κ° μλ μ μλ€.
κ°λ¨ν κ°λ
μΌλ‘ μ 리νμλ©΄, λμ λΉκ΅μ μ격μ±μ μμ΄μ μ°¨μ΄κ° μλ€.
== μ κ²½μ°, JavaScript μμ§μ μν΄ μ묡μ νμ
λ³νμ΄ μΌμ΄λμ, νΌμ°μ°μμ νμ
μ μΌμΉμν¨ νμ κ°λ§μ λΉκ΅νλ€.
λ°λ©΄ === μ κ²½μ°, νΌμ°μ°μμ κ° λΏλ§ μλλΌ νμ
κΉμ§ μΌμΉν΄μΌ trueκ° λ°νλλ€.
== λ, trueκ° λμλ, λμΌνμ§ μμ κ°λ₯μ±μ΄ μ‘΄μ¬νκΈ° λλ¬Έμ, ==보λ€λ ===μ μ¬μ©νλλ‘ νμ.
κ·Έλ¦¬κ³ λ μ£Όμν μ μ΄ μλ€.
NaN === NaN μ μ΄λ€ κ°μ΄ λμ¬κΉ?
λκ° λ΄λ trueκ° λμ¬ κ² κ°μ§λ§, κ²°κ³Όλ falseμ΄λ€.
κ·Έλμ κ²°κ³Όμ κ°μ΄ NaNμΈμ§ νμΈνλ €λ©΄,
=== μ°μ°μκ° μλ, λΉνΈμΈ ν¨μ Number.isNaN μ μ¬μ©ν΄μΌ νλ€κ³ νλ€.
λν, JavaScriptμλ -0κ³Ό +0μ΄ λ³λλ‘ μ‘΄μ¬νλ€.
κ·Έλ°λ°, μ΄ λ κ°μ === μ°μ°μλ‘ λΉκ΅νλ©΄ trueκ° λμ¨λ€.
ES6μ Object.is λ©μλμμλ, μ νν λΉκ΅ κ²°κ³Όλ₯Ό μ 곡νλ€κ³ νλ, ν΄λΉ μ°μ°μ μ§νν λλ Object.is λ©μλλ₯Ό μ¬μ©νλλ‘ νμ.
<, >, <=, >=
νΌμ°μ°μμ ν¬κΈ°λ₯Ό λΉκ΅ν΄ boolean κ°μ λ°ννλ μ°μ°μμ΄λ€.
JavaScriptμμ, μΌν 쑰건 μ°μ°μλ λ± νλλΏμ΄λ€.
쑰건μμ νκ° κ²°κ³Όμ λ°λΌ λ°νν κ°μ κ²°μ νλ μ°μ°μμ΄λ©°, side effectλ μΌμ΄λμ§ μλλ€.
(쑰건μ) ? (trueμ λ°νν κ²°κ³Ό) : (falseμ λ°νν κ²°κ³Ό)
쑰건μμ κ²°κ³Όλ booleanμΌλ‘ νκ°νλ©°, booleanμ΄ μλ νμ
μΌλ‘ νκ°λ κ²½μ° μ묡μ νμ
λ³νμ΄ μΌμ΄λλ€.
μ΄λ° μ°μ°μλ if...else λ¬ΈμΌλ‘ λ체ν μ μλ€κ³ μκ°λλ€.
κ·Έλ¬λ if...else λ¬Έκ³Όλ λ€λ₯΄κ², κ·Έ κ²°κ³Όλ₯Ό κ°μ²λΌ μ¬μ©ν μ μλ€.
κ·Έλ¬λκΉ μΌν 쑰건 μ°μ°μλ₯Ό μ¬μ©νλ©΄, ννμμΈ λ¬Έμ΄ λλ κ²μ΄λ€.
μ΄λ λ€λ₯Έ ννμμ μΌλΆκ° λ μ μκΈ° λλ¬Έμ λ§€μ° μ μ©νλ€.
κ·Έλ¬λ μ¬λ¬ 쑰건μ κ±Έμ³ κ·Έμ λ°λ₯Έ κ²°λ‘ μ λ΄λ €μΌ νλ κ²½μ°μλ if...else λ¬Έμ μ¬μ©νλ κ²μ΄ μ’λ€.
||, &&, !
μ°νκ³Ό μ’νμ νΌμ°μ°μλ₯Ό λ Όλ¦¬μ°μ°νλ μ°μ°μμ΄λ€.
λ
Όλ¦¬ν©, λ
Όλ¦¬κ³± μ°μ°μμ ννμμ νκ° κ²°κ³Όλ boolean κ°μ΄ μλ μλ μλ€.
,
μΌμͺ½ νΌμ°μ°μλΆν° μ°¨λ‘λ‘ νΌμ°μ°μλ₯Ό νκ°νκ³ , λ§μ§λ§ νΌμ°μ°μμ νκ°κ° μ’
λ£λλ©΄, λ§μ§λ§ νΌμ°μ°μμ νκ° κ²°κ³Όλ₯Ό λ°ννλ€.
()
() λ‘ νΌμ°μ°μλ₯Ό κ°μΈλ μ°μ°μ.
μμ μ νΌμ°μ°μμΈ ννμμ κ°μ₯ λ¨Όμ νκ°νλ€.
-> μ°μ°μ μ°μ μμλ₯Ό μ‘°μ ν μ μλ€.
κ·Έλ¬λκΉ νλ§λλ‘, μ°λ¦¬κ° μνμμ κ°μ₯ λ¨Όμ κ³μ°ν΄μΌ νλ μμ ()λ‘ κ°μΈλ κ²κ³Ό λμΌν μν μ νλ μ°μ°μμ΄λ€.
νΌμ°μ°μμ data typeμ λ¬Έμμ΄λ‘ λ°ννλ μ°μ°μμ΄λ€.
string, number, boolean, undefined, symbol, object, function μ΄λ κ² 7κ°μ data typeμ λ°ννλλ°, μ ννκ² μΌμΉνμ§λ μλλ€.
nullμ λ°ννλ κ²½μ°λ μμΌλ©°, nullμ typeof μ°μ°μλ‘ μ°μ°ν΄λ³΄λ©΄ objectκ° λ°νλλ€.
μ΄κ±΄ JavaScriptμ ν΄κ²°λμ§ μμ λ²κ·ΈλΌκ³ νλ€.
null νμ
κ²μ¬λ₯Ό νλ €λ©΄, typeof μ°μ°μκ° μλ ===μ°μ°μλ₯Ό μ¬μ©νμ.
κ·Έλ¦¬κ³ μ μΈνμ§ μμ μλ³μλ₯Ό typeofλ‘ μ°μ°ν κ²½μ°, ReferenceError κ° λ°μν κ² κ°μ§λ§ undefined κ° λ°νλλ€λ μ¬μ€λ μμλμ..
**
ES7μμ λμ λμλ€.
μ’νμ νΌμ°μ°μλ₯Ό μ§μκ³μ°μ λ° baseλ‘, μ°νμ νΌμ°μ°μλ₯Ό μ§μ exponentλ‘ κ±°λμ κ³±νμ¬ μ«μκ°μ λ°ννλ μ°μ°μμ΄λ€.
μλλ Math.pow λ©μλλ₯Ό μ¬μ©νλ€.
μ§μ μ°μ°μμ μ¬μ©κ³Ό λΉκ΅ν΄λ³΄λ©΄, μ§μμ°μ°μλ₯Ό μ¬μ©νλ κ²μ΄ ν¨μ¬ μ§κ΄μ μ΄κ³ κΉλνλ€.
2 ** (3 ** 2)
Math.pow(2, Math.pow(3, 2))
μμλ₯Ό κ±°λμ κ³±μ λ°μΌλ‘ μ¬μ©νλ €λ©΄, κ΄νΈλ‘ λ¬Άμ΄μ€μΌ νλ€.
?., ??, delete, new, instanceof, inμ΄λΌλ μ°μ°μλ€λ μ‘΄μ¬νμ§λ§,,
λμ€μ μ°¨μ°¨ μ΄ν΄λ³΄λλ‘νμ.
μμμ side effect ν¨κ³Όκ° μλ μ°μ°μλ€μ΄ μ’
μ’
λ±μ₯νμλλ°, μ 리ν΄λ³΄μλ©΄
ν λΉμ°μ°μ=, μ¦κ°μ°μ°μ++/--, κ·Έλ¦¬κ³ λμ€μ λμ¬ delete μ°μ°μμ μ‘΄μ¬νλ€.
| μμ | |
|---|---|
| 1 | () |
| 2 | new (λ§€κ°λ³μ μ‘΄μ¬), ., [] (νλ‘νΌν° μ κ·Ό), () (ν¨μνΈμΆ), ?. (μ΅μ
λ체μ΄λμ°μ°μ) |
| 3 | new (λ§€κ°λ³μ λ―Έμ‘΄μ¬) |
| 4 | x++, x-- |
| 5 | !x, +x, -x, ++x, --x, typeof, delete |
| 6 | ** |
| 7 | *, /, % |
| 8 | +, - |
| 9 | <, <=, >, >=, in, instanceof |
| 10 | ==, !=, ===, !== |
| 11 | ?? (null λ³ν© μ°μ°μ) |
| 12 | && |
| 13 | || |
| 14 | ? ... : ... |
| 15 | ν λΉμ°μ°μ(=, +=, -=, ... |
| 16 | , |
μκ°νλ κ² λ³΄λ€ μμΈλ μ€λ₯,,? λ²κ·Έκ° λ§μμ 곡λΆνλ©΄μ μ’.. μ λ’°λκ° λ¨μ΄μ‘λ€.
μ λ²κ·Έκ° μλ κ±Έ μλ©΄μ κ³ μΉμ§ μλ κ±΄μ§ λͺ¨λ₯΄κ² μ§λ§ μΌλ¨,,, μ΄μ κ° μμ κ±°λΌλ μκ°μΌλ‘ μ°μ°μ ννΈλ₯Ό λ§λ¬΄λ¦¬νλ€.
λ€μ κΈμλ μ μ΄λ¬Έμ λ€λ£¨μ΄ λ³Ό κ²μ΄λ€.