7μ₯ μ°μ°μ
μ°μ°μλ νλ μ΄μμ ννμμ λμμΌλ‘ μ°μ , ν λΉ, λΉκ΅, λ Όλ¦¬, νμ μ§μ μ°μ° λ±μ μνν΄ νλμ κ°μ λ§λ λ€.
μ°μ°μ λμμΈ νΌμ°μ°μλ κ°μΌλ‘ νκ°λ μ μλ ννμ μ΄μ΄μΌ νλ€.
7.1 μ°μ μ°μ°μ
νΌμ°μ°μλ₯Ό λμμΌλ‘ μνμ κ³μ°μ μνν΄ μλ‘μ΄ μ«μ κ°μ λ§λ λ€. μ°μ μ°μ°μ΄ λΆκ°λ₯ν κ²½μ° NaNμ λ°ννλ€.
- 7.1.1 μ΄ν μ°μ μ°μ°μ (+ , - , * , / , %)
2κ°μ νΌμ°μ°μλ₯Ό μ°μ μ°μ°νμ¬ μ«μ κ°μ λ§λ λ€. μΈμ λ μλ‘μ΄ κ°μ λ§λ λ€.
- 7.1.2 λ¨ν μ°μ μ°μ°μ (++ , -- , + , -)
1κ°μ νΌμ°μ°μλ₯Ό μ°μ μ°μ°νμ¬ μ«μ κ°μ λ§λ λ€. ++μ --λ νΌμ°μ°μμ κ°μ λ³κ²½νλ λΆμ ν¨κ³Όκ° μμ΄ μ묡μ ν λΉμ΄ μ΄λ£¨μ΄μ§λ€.
++,-- λ μμΉμ λ°λΌ μ μ/νμλ‘ λλλλ°
μ μ μ¦κ°/κ°μ μ°μ°μμΌ κ²½μ°μλ κ°μ μ¦κ°/κ°μμν¨ ν, λ€λ₯Έ μ°μ°μ μννλ€.
var x = 5, result;
// μ μ¦κ° νν λΉ
result = ++x;
console.log(result, x); // 6 6
// μ κ°μ νν λΉ
result = --x;
console.log(result, x); // 5 5
νμ μ¦κ°/κ°μ μ°μ°μλ λ€λ₯Έ μ°μ°μ μνν ν, νΌμ°μ°μμ κ°μ μ¦κ°/κ°μμν¨λ€.
var x = 5, result;
// μ ν λΉ νμ¦κ°
result = x++;
console.log(result, x); // 5 6
// μ ν λΉ νκ°μ
result = x--;
console.log(result, x); // 6 5
λν, μ«μ νμ μ΄ μλ νΌμ°μ°μμ +λ¨ν μ°μ°μλ₯Ό μ¬μ©νλ©΄ νΌμ°μ°μλ₯Ό μ«μ νμ μΌλ‘ λ³ννμ¬ λ°ννλ€.
-λ¨ν μ°μ°μλ νΌμ°μ°μμ λΆνΈλ₯Ό λ°μ ν κ°μ λ°ννλ€. κ·Έλ¦¬κ³ νΌμ°μ°μλ₯Ό μ«μ νμ μΌλ‘ λ³ννμ¬ λ°ννλ€.
- 7.1.3 λ¬Έμμ΄ μ°κ²° μ°μ°μ
+μ°μ°μλ νΌμ°μ°μ μ€ νλ μ΄μμ΄ λ¬Έμμ΄μΈ κ²½μ° λ¬Έμμ΄ μ°κ²° μ°μ°μλ‘ λμνλ€.
// λ¬Έμμ΄ μ°κ²° μ°μ°μ
'1' + 2; // -> '12'
1 + '2'; // -> '12'
// μ°μ μ°μ°μ
1 + 2; // -> 3
// trueλ 1λ‘ νμ
λ³νλλ€.
1 + true; // -> 2
// falseλ 0μΌλ‘ νμ
λ³νλλ€.
1 + false; // -> 1
// nullμ 0μΌλ‘ νμ
λ³νλλ€.
1 + null; // -> 1
// undefinedλ μ«μλ‘ νμ
λ³νλμ§ μλλ€.
+undefined; // -> NaN
1 + undefined; // -> NaN
κ°λ°μμ μλμ μκ΄μμ΄ μλ°μ€ν¬λ¦½νΈ μμ§μ μν΄ νμ μ΄ μλ λ³νλκΈ°λ νλ€λ κ²μ΄λ€.
μ΄λ₯Ό μ묡μ νμ λ³ν or νμ κ°μ λ³ν μ΄λΌκ³ νλ€.
7.2 ν λΉ μ°μ°μ (= , += , -= , *= , /= , %=)
μ°νμ μλ νΌμ°μ°μμ νκ° κ²°κ³Όλ₯Ό μ’νμ μλ λ³μμ ν λΉνλ€.
let x;
x = 10;
console.log(x); // 10
x += 5; // x = x + 5;
console.log(x); // 15
x -= 5; // x = x - 5;
console.log(x); // 10
x *= 5; // x = x * 5;
console.log(x); // 50
x /= 5; // x = x / 5;
console.log(x); // 10
x %= 5; // x = x % 5;
console.log(x); // 0
let str = 'My name is ';
// λ¬Έμμ΄ μ°κ²° μ°μ°μ
str += 'Lee'; // str = str + 'Lee';
console.log(str); // 'My name is Lee'
7.3 λΉκ΅ μ°μ°μ
μ’νκ³Ό μ°νμ νΌμ°μ°μλ₯Ό λΉκ΅ν λ€μ κ·Έ κ²°κ³Όλ₯Ό λΆλ¦¬μΈ κ°μΌλ‘ λ°ννλ€.
- 7.3.1 λλ±/μΌμΉ λΉκ΅ μ°μ°μ (== , === , != , !==)
λλ± λΉκ΅ μ°μ°μλ μ묡μ νμ λ³νμ ν΅ν΄ νμ μ μΌμΉμν¨ ν κ°μ κ°μΈμ§ λΉκ΅νλ€. (νμ μ΄ λ¬λΌλ νμ λ³ν ν κ°μ κ°μ΄λ©΄ true λ°ν)
5 == "5" //true
μΌμΉ λΉκ΅ μ°μ°μλ μ’νκ³Ό μ°νμ νΌμ°μ°μκ° νμ λ κ°κ³ κ°λ κ°μ κ²½μ°μ ννμ¬ trueλ₯Ό λ°ννλ€.
5 == "5" //false
μ£Όμ ) NaN (μμ κ³Ό μΌμΉνμ§ μλ μ μΌν κ°μ΄λ€. μ«μκ° NaNμΈμ§ μ‘°μ¬νλ €λ©΄ isNaNμ μ¬μ©νλ€.)
NaN === NaN //false
μ£Όμ ) 0 (μμ 0κ³Ό μμ 0μ λΉκ΅νλ©΄ trueλ₯Ό λ°ννλ€)
0 === -0 //true
λΆλλ± λΉκ΅ μ°μ°μ(!==, !=)λ λ°λμ κ°λ μ΄λ€.
- 7.3.2 λμ κ΄κ³ λΉκ΅ μ°μ°μ(> , < , <= , >=)
λμ κ΄κ³ λΉκ΅ μ°μ°μλ λΆλ¦¬μΈ κ°μ λ°ννλ€.
5 > 0; // -> true
5 > 5; // -> false
5 >= 5; // -> true
5 <= 5; // -> true
7.4 μΌν 쑰건 μ°μ°μ
쑰건μμ νκ° κ²°κ³Όμ λ°λΌ λ°νν κ°μ κ²°μ νλ€.
쑰건μ ? trueμΌ λ λ°νν κ° : falseμΌ λ λ°νν κ°
if...else λ¬Έμ ννμμ΄ μλ λ¬Έμ΄λ€. λ°λΌμ κ°μ²λΌ μ¬μ©ν μ μλ€.
μΌν 쑰건 μ°μ°μ ννμμ ννμμΈ λ¬Έμ΄λ€. λ°λΌμ κ°μ²λΌ μ¬μ©ν μ μλ€.
let x = 10;
let result = if (x % 2) {
result = 'νμ';
} else {
result = 'μ§μ'; };
// SyntaxError: Unexpected token if
let result = x % 2 ? 'νμ' : 'μ§μ';
console.log(result); // μ§μ
7.5 λ Όλ¦¬ μ°μ°μ (|| , && , !)
μ°νκ³Ό μ’νμ νΌμ°μ°μλ₯Ό λ Όλ¦¬ μ°μ°νλ€.
// λ
Όλ¦¬ν©(||) μ°μ°μ
true || true; // -> true
true || false; // -> true
false || true; // -> true
false || false; // -> false
// λ
Όλ¦¬κ³±(&&) μ°μ°μ
true && true; // -> true
true && false; // -> false
false && true; // -> false
false && false; // -> false
// λ
Όλ¦¬ λΆμ (!) μ°μ°μ
!true; // -> false
!false; // -> true
7.6 μΌν μ°μ°μ
μΌμͺ½ νΌμ°μ°μλΆν° μ°¨λ‘λλ‘ νΌμ°μ°μλ₯Ό νκ°νκ³ λ§μ§λ§ νΌμ°μ°μμ νκ°κ° λλλ©΄ λ§μ§λ§ νΌμ°μ°μμ νκ° κ²°κ³Όλ₯Ό λ°ννλ€.
let x, y, z;
x = 1, y = 2, z = 3; // 3
7.7 κ·Έλ£Ή μ°μ°μ
μκ΄νΈλ‘ νΌμ°μ°μλ₯Ό κ°μΈ μμ μ νΌμ°μ°μ ννμμ κ°μ₯ λ¨Όμ νκ°νλ€. μ°μ μμκ° κ°μ₯ λλ€.
10 * 2 + 3; // 23
10 * ( 2 + 3 ); // 50
7.8 typeof μ°μ°μ
νΌμ°μ°μμ λ°μ΄ν° νμ
μ λ¬Έμμ΄λ‘ λ°ννλ€. nullμ λ°ννλ κ²½μ°λ μμΌλ©° ν¨μλ functionμΌλ‘ λ°ννλ€.
7.9 μ§μ μ°μ°μ
μ’νμ νΌμ°μ°μλ₯Ό λ°μΌλ‘ μ°νμ νΌμ°μ°μλ₯Ό μ§μλ‘ κ±°λ μ κ³±νμ¬ μ«μλ₯Ό λ°ννλ€.
2 ** 2; // -> 4
2 ** 2.5; // -> 5.65685424949238
2 ** 0; // -> 1
2 ** -2; // -> 0.25
7.12 μ°μ°μμ μ°μ μμ
()κ° 1μμμ΄λ€!