07_μ°μ°μ
μ°μ°μ(Operator)λ νλ μ΄μμ ννμμ λμμΌλ‘ κ°μΌλ‘ νκ°λ μ μλ ννμμ΄μ΄μΌ νλ€.
- μ°μ , ν λΉ, λΉκ΅, λ Όλ¦¬, νμ , μ§μ μ°μ° λ±μ μνν΄μ νλμ κ°μ λ§λ λ€.
// μ°μ μ°μ°μ
5 * 4 // β 20
// λ¬Έμμ΄ μ°κ²° μ°μ°μ
'My name is ' + 'apil' // β My name is apil
// ν λΉ μ°μ°μ
color = 'blue' // β blue
// λΉκ΅ μ°μ°μ
3 > 5 // β false
// λ
Όλ¦¬ μ°μ°μ
true && false // β false
// νμ
μ°μ°μ
typeof 'Hi' // β string
νΌμ°μ°μλ κ°μ΄λΌλ λͺ μ¬μ μν μ νκ³ μ°μ°μλ νΌμ°μ°μλ₯Ό μ°μ°νμ¬ μλ‘μ΄ κ°μ λ§λ λ€ λΌλ λμ¬ μν μ νλ€.
7.1 μ°μ μ°μ°μ
μ°μ μ°μ°μ(arithmetic operator)λ νΌμ°μ°μλ₯Ό λμμΌλ‘
- μνμ κ³μ°μ μνν΄ μλ‘μ΄ μ«μ κ°μ λ§λ λ€.
- μ°μ μ°μ°μ΄ λΆκ°λ₯ ν κ²½μ°
NaN
μ λ°ννλ€. - νΌμ°μ°μμ κ°μμ λ°λΌ μ΄ν μ°μ μ°μ°μμ λ¨ν μ°μ μ°μ°μλ‘ κ΅¬λΆ ν μ μλ€.
7.1.1 μ΄ν μ°μ μ°μ°μ
μ΄ν μ°μ μ°μ°μλ 2κ°μ νΌμ°μ°μλ₯Ό μ°μ μ°μ°νμ¬ μ«μ κ°μ λ§λ λ€.
- λͺ¨λ μ΄ν μ°μ°μλ νΌμ°μ°μμ κ°μ λ³κ²½νλ λΆμ ν¨κ³Όκ° μλ€.
- μ΄λ€ μ°μ μ°μ°μ ν΄λ νΌμ°μ°μμ κ°μ΄ λ°λλ κ²½μ°λ μκ³ μΈμ λ μλ‘μ΄ κ°μ λ§λ λ€.
μ΄ν μ°μ μ°μ°μ | μλ―Έ | λΆμν¨κ³Ό |
---|---|---|
+ | λ§μ | x |
- | λΊμ | x |
* | κ³±μ | x |
/ | λλμ | x |
% | λλ¨Έμ§ | x |
7.1.2 λ¨ν μ°μ μ°μ°μ
λ¨ν μ°μ μ°μ°μλ 1κ°μ νΌμ°μ°μλ₯Ό μ°μ μ°μ°νμ¬ μ«μ κ°μ λ§λ λ€.
- μ΄ν μ°μ μ°μ°μμλ λ¬λ¦¬ μ¦κ°/κ°μ(++/--) μ°μ°μλ νΌμ°μ°μμ κ°μ λ³κ²½νλ λΆμ ν¨κ³Όκ° μλ€.
λ¨ν μ°μ μ°μ°μ | μλ―Έ | λΆμν¨κ³Ό |
---|---|---|
++ | μ¦κ° | 0 |
-- | κ°μ | 0 |
+ | μ΄λ ν ν¨κ³Όλ μλ€, μμλ₯Ό μμλ‘ λ°μ νμ§λ μλλ€. | x |
- | μμλ₯Ό μμλ‘, μμλ‘ μμλ‘ λ°μ ν κ°μ λ°ννλ€. | x |
- νΌμ°μ°μ μμ μμΉν μ μ μ¦κ°/κ°μ μ°μ°μλ λ¨Όμ νΌμ°μ°μμ κ°μ μ¦κ°/κ°μ μν¨ ν, λ€λ₯Έ μ°μ°μλ₯Ό μν
- νΌμ°μ°μ λ€μ μμΉν μ μ μ¦κ°/κ°μ μ°μ°μλ λ¨Όμ λ€λ₯Έ μ°μ°μλ₯Ό μν ν, νΌμ°μ°μμ κ°μ μ¦κ°/κ°μ
var x = 5;
var result;
// μ ν λΉ ν μ¦κ°(postfix increment oprator)
result = x++;
console.log(result, x); // 5, 6
// μ μ¦κ° ν ν λΉ(prefix increment oprator)
result = ++x;
console.log(result, x); // 7, 7
// μ ν λΉ ν κ°μ(postfix decrement oprator)
result = x--;
console.log(result, x); // 7, 6
// μ κ°μ ν ν λΉ(prefix decrement oprator)
result = --x;
console.log(result, x); // 5, 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
- μ£Όλͺ©ν κ²μ κ°λ°μμ μλμλ μκ΄μμ΄ μλ°μ€ν¬λ¦½νΈ μμ§μ μν΄ μ묡μ μΌλ‘ νμ μ΄ μλ λ³ν λκΈ°λ νλ€λ κ²μ΄λ€.
1 + true
λ₯Ό μ°μ°νλ©΄ μλ°μ€ν¬λ¦½νΈ μμ§μ μ묡μ μΌλ‘ λΆλ¦¬μΈ νμ μ κ°μΈ trueλ₯Ό μ«μ νμ μΈ 1λ‘ κ°μ λ³νν ν μ°μ°μ μννλ€.- μ΄λ₯Ό μ묡μ νμ λ³ν λλ νμ κ°μ λ³ν μ΄λΌκ³ νλ€.
7.2 ν λΉ μ°μ°μ
ν λΉ μ°μ°μλ μ°νμ μλ νΌμ°μ°μμ νκ° κ²°κ³Όλ₯Ό μ’νμ μλ λ³μμ ν λΉνλ€.
- μ’νμ λ³μμ κ°μ ν λΉνλ―λ‘ λ³μ κ°μ΄ λ³νλ λΆμ ν¨κ³Όκ° μλ€.
ν λΉ μ°μ°μ | μ | λμΌ νν | λΆμ ν¨κ³Ό |
---|---|---|---|
= | x = 5 | x = 5 | 0 |
+= | x += 5 | x = x + 5 | 0 |
-= | x -= 5 | x = x -5 | 0 |
*= | x *= 5 | x = x * 5 | 0 |
/= | x /= 5 | x = x / 5 | 0 |
%= | x %= 5 | x = x % 5 | 0 |
7.3 λΉκ΅ μ°μ°μ
μ’νκ³Ό μ°νμ νΌμ°μ°μλ₯Ό λΉκ΅ν λ€μ κ·Έ κ²°κ³Όλ₯Ό λΆλ¦¬μΈ κ°μΌλ‘ λ°ννλ€.
- λΉκ΅ μ°μ°μλ if λ¬Έμ΄λ for λ¬Έκ³Ό κ°μ μ μ΄λ¬Έμ 쑰건μμμ μ£Όλ‘ μ¬μ©νλ€.
7.3.1 λλ± / μΌμΉ λΉκ΅ μ°μ°μ
λλ± λΉκ΅ μ°μ°μμ μΌμΉ λΉκ΅ μ°μ°μλ
- μ’νκ³Ό μ°νμ νΌμ°μ°μκ° κ°μ κ°μΌλ‘ νκ°λλμ§ λΉκ΅ν΄ λΆλ¦¬μΈ κ°μ λ°ννλ€.
λΉκ΅ μ°μ°μ | μλ―Έ | μ¬λ‘ | μ€λͺ | λΆμ ν¨κ³Ό |
---|---|---|---|---|
== | λλ± λΉκ΅ | x == y | xμ yμ κ°μ΄ κ°μ | X |
=== | μΌμΉ λΉκ΅ | x === y | xμ yμ κ°κ³Ό νμ μ΄ κ°μ | X |
!= | λΆλλ± λΉκ΅ | x != y | xμ yμ κ°μ΄ λ€λ¦ | X |
!== | λΆμΌμΉ λΉκ΅ | x !== y | xμ yμ κ°κ³Ό νμ μ΄ λ€λ¦ | X |
- λλ± λΉκ΅(==) μ°μ°μλ μ’νκ³Ό μ°νμ νΌμ°μ°μλ₯Ό λΉκ΅ν λ λ¨Όμ μ묡μ νμ λ³νμ ν΅ν΄ νμ μ μΌμΉ μν¨ ν κ°μ κ°μΈμ§ λΉκ΅νλ€.
- λ°λΌμ λλ± λΉκ΅ μ°μ°μλ μ’νκ³Ό μ°νμ νΌμ°μ°μκ° νμ μ λ€λ₯΄λλΌλ μ묡μ νμ λ³νμ ν΅ν΄ κ°μ κ°μΌ μ μλ€λ©΄ true λ₯Ό λ°ννλ€.
// λλ± λΉκ΅
5 == 5; // true
// νμ
μ λ€λ₯΄μ§λ§ μ묡μ νμ
λ³νμ ν΅ν΄ μΌμΉμν€λ©΄ λλ±νλ€.
5 == '5'; // true
- λΆλλ± λΉκ΅ μ°μ°μ(!=)μ λΆμΌμΉ λΉκ΅ μ°μ°μ(!==)λ κ°κ° λλ± λΉκ΅ μ°μ°μμ μΌμΉ λΉκ΅ μ°μ°μμ λ°λ κ°λ μ΄λ€.
// λΆλλ± λΉκ΅
5 != 8; // true
5 != '5'; // false
// λΆμμΉ λΉκ΅
5 !== 8; // true
5 !== '5'; // true
7.3.2 λμ κ΄κ³ λΉκ΅ μ°μ°μ
λμ κ΄κ³ λΉκ΅ μ°μ°μλ νΌμ°μ°μμ ν¬κΈ°λ₯Ό λΉκ΅ν΄μ λΆλ¦¬μΈ κ° μ λ°ννλ€.
λμ κ΄κ³ λΉκ΅ μ°μ°μ | μμ | μ€λͺ |
---|---|---|
> | x > y | xκ° yλ³΄λ€ ν¬λ€ |
< | x < y | xκ° yλ³΄λ€ μλ€ |
>= | x >= y | xκ° yλ³΄λ€ ν¬κ±°λ κ°λ€ |
<= | x <= y | xκ° yλ³΄λ€ μκ±°λ κ°λ€ |
7.4 μΌν 쑰건 μ°μ°μ
μΌν 쑰건 μ°μ°μλ 쑰건μμ νκ° κ²°κ³Όμ λ°λΌ λ°νν κ°μ κ²°μ νλ€.
- λ¬Όμν μμ 첫 λ²μ§Έ νΌμ°μ°μλ boolean νμ μ κ°μΌλ‘ νκ°λ ννμ(쑰건μ)μ΄λ€.
- λ§μ½ 쑰건μμ νκ° κ²°κ³Όκ° boolean κ°μ΄ μλλ©΄ boolean κ°μΌλ‘ μ묡μ νμ λ³ν λλ€.
- μΌν 쑰건 μ°μ°μλ κ°μΌλ‘ νκ°λ μ μλ ννμμΈ λ¬Έμ΄λ€. λ°λΌμ κ°μ²λΌ λ€λ₯Έ ννμμ μΌλΆκ° λ μ μμ΄ λ§€μ° μ μ©νλ€.
7.5 λ Όλ¦¬ μ°μ°μ
λ Όλ¦¬ μ°μ°μλ μ°νκ³Ό μ’νμ νΌμ°μ°μλ₯Ό λ Όλ¦¬ μ°μ° νλ€.
λ Όλ¦¬ μ°μ°μ | μλ―Έ |
---|---|
II | λ Όλ¦¬ν©(OR) |
&& | λ Όλ¦¬κ³±(AND) |
! | λΆμ (NOT) |
// λ
Όλ¦¬ν©(||) μ°μ°μ
true || true; // true
true || false; // true
false || true; // true
false || false; // false
// λ
Όλ¦¬κ³±(&&) μ°μ°μ
true && true; // true
true && false; // false
false && true; // false
false && false; // false
// λ
Όλ¦¬ λΆμ (!) μ°μ°μλ μΈμ λ boolean κ°μ λ°ν β μ묡μ νμ
λ³ν
!0; // true
!'Hello'; // false
λ λͺ¨λ₯΄κ°μ λ²μΉ
λ Όλ¦¬ μ°μ°μλ‘ κ΅¬μ±λ 볡μ‘ν ννμμ κ°λ μ±μ΄ μ’μ§ μμ νλμ μ΄ν΄νκΈ° μ΄λ €μΈλκ° μλ€.
μ΄λ¬ν κ²½μ° λ λͺ¨λ₯΄κ°μ λ²μΉμ νμ©νλ©΄ 볡μ‘ν ννμμ μ’ λ κ°λ μ± μ’μ ννμμΌλ‘ λ³νν μ μλ€.
!(x || y) === (!x && !y)
!(x && y) === (!x || !y)
7.6 μΌν μ°μ°μ
μΌν(,) μ°μ°μλ μΌμͺ½ νΌμ°μ°μλΆν° μ°¨λ‘λλ‘ νΌμ°μ°μλ₯Ό νκ°νκ³
λ§μ§λ§ νΌμ°μ°μμ νκ°κ° λλλ©΄ λ§μ§λ§ νΌμ°μ°μμ νκ° κ²°κ³Όλ₯Ό λ°ννλ€.
var x, y, z;
x = 1, y =2, z =3; // 3
7.7 κ·Έλ£Ή μ°μ°μ
μκ΄νΈ(()
)λ‘ νΌμ°μ°μλ₯Ό κ°μΈλ κ·Έλ£Ή μ°μ°μλ μμ μ νΌμ°μ°μμΈ ννμμ κ°μ₯ λ¨Όμ νκ°νλ€.
- κ·Έλ£Ή μ°μ°μλ₯Ό μ¬μ©νλ©΄ μ°μ°μμ μ°μ μμλ₯Ό μ‘°μ ν μ μλ€.
- κ·Έλ£Ή μ°μ°μλ μ°μ°μ μ°μ μμκ° κ°μ₯ λλ€.
10 * 2 + 3; // 23
// μ°μ μμ μ‘°μ
10 * (2 + 3); // 50
7.8 typeof μ°μ°μ
typeof μ°μ°μλ νΌμ°μ°μμ λ°μ΄ν° νμ μ λ¬Έμμ΄λ‘ λ°ννλ€.
null
μ λ°ννλ κ²½μ°λ μμΌλ©°, ν¨μμ κ²½μ°function
μ λ°ννλ€.- typeof μ°μ°μλ‘
null
κ°μ μ°μ°ν΄ 보면object
λ₯Ό λ°ννλ€. - μ΄κ²μ μλ°μ€ν¬λ¦½νΈμ 첫 λ²μ§Έ λ²μ μΈ λ²κ·Έμ΄λ€. νμ§λ§ κΈ°μ‘΄ μ½λμ μν₯μ μ€ μ μμ΄ μμ X
- λ°λΌμ κ°μ΄
null
νμ μΈμ§ νμΈ ν λλ μΌμΉ μ°μ°μ(===) μ¬μ© κΆμ₯
typeof '' // "string"
typeof 1 // "number"
typeof NaN // "number"
typeof true // "boolean"
typeof undefined // "undefined"
typeof Symbol() // "symbol"
typeof null // "object"
typeof [] // "object"
typeof {} // "object"
typeof new Date() // "object"
typeof /test/gi // "object"
typeof function(){} // "function"
7.9 μ§μ μ°μ°μ
ES7 μμ λμ λ μ§μ μ°μ°μλ
- μ’νμ νΌμ°μ°μλ₯Ό λ°μΌλ‘
- μ°νμ νΌμ°μ°μλ₯Ό μ§μλ‘ κ±°λ μ κ³±νμ¬ μ«μ κ°μ λ°ννλ€.
2 ** 2; // 4
Math.pow(2, 2); // 4 (μ§μ μ°μ°μκ° λμ
λκΈ° μ΄μ )
// μμλ₯Ό λ°μΌλ‘ μ¬μ©νλ €λ©΄ λ€μκ³Ό κ°μ΄ κ΄νΈλ‘ λ¬Άμ΄μΌ νλ€.
(-5) ** 2; // 25
// ν λΉμ°μ°μμ κ°μ΄ μ¬μ© κ°λ₯νλ€.
var num = 5;
num **= 2 // 25
// μ§μ μ°μ°μλ μ΄ν μ°μ°μ μ€μμ μ°μ μμκ° κ°μ₯ λλ€
2 * 5 ** 2; // 50
7.10 μ°μ°μ μ°μ μμ
μ°μ°μλ μ’ λ₯κ° λ§μ μ°μ μμλ₯Ό λͺ¨λ κΈ°μ΅νκΈ° μ΄λ ΅λ€ -> κ·Έλ£Ήμ°μ°μλ₯Ό μ¬μ©νλ κ²μ κΆμ₯νλ€.
7.11 μ°μ°μ κ²°ν© μμ
μ°μ°μ κ²°ν© μμλ μ°μ°μμ μ΄λ μͺ½(μ’ν λλ μ°ν)λΆν° νκ°λ₯Ό μνν κ²μΈμ§ λνλ΄λ μμ
'π Book-Talk > λͺ¨λ JS Deep Dive' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive_νμ λ³ν (0) | 2022.11.11 |
---|---|
λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive_μ μ΄λ¬Έ (0) | 2022.11.10 |
λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive_λ°μ΄ν° νμ (2) | 2022.11.10 |
λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive_ννμκ³Ό λ¬Έ (0) | 2022.11.10 |
λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive_λ³μ (0) | 2022.11.09 |