[JavaScript] 05. μ°μ°μ
π‘ 1. μ°μ°μ(Operator)
- μ°μ°μ΄λ μλ μμ μΌμ ν κ·μΉμ λ°λΌ κ³μ°νλ κ²μ μλ―Έν©λλ€. μ°μ°μλ μ΄λ ν μ°μ°μ νλ κ²μΈμ§ μλ―Ένλ κΈ°νΈμ λλ€. μ°μ°μ λμμ νΌμ°μ°μ(Operand)λΌ ν©λλ€.
- μ°μ°μμ μ’ λ₯λ μ¬λ¬ κ°μ§κ° μμ§λ§, λ³Έ κΈμμλ (μ°μ , ν λΉ, λΉκ΅, μΌν 쑰건, λ Όλ¦¬, μΌν, κ·Έλ£Ή, typeof) 8κ°μ§μ μ°μ°μλ₯Ό μ€λͺ νκ³ μ ν©λλ€.
π‘ 2. μ°μ μ°μ°μ (Arithmetic Operator)
- μ°μ μ°μ°μλ νΌμ°μ°μλ₯Ό λμμΌλ‘ μνμ κ³μ°μ μνν©λλ€. μ°μ μ°μ°μ΄ λΆκ°λ₯ν κ²½μ°μλ NaN(Not a Number)μ λ°νν©λλ€.
π£ 2.1 μ΄ν μ°μ μ°μ°μ
- μ΄ν μ°μ μ°μ°μλ 2κ°μ νΌμ°μ°μλ₯Ό μ°μ°ν©λλ€.
μ΄ν μ°μ μ°μ°μ | μ€λͺ |
+ | λ§μ |
- | λΊμ |
* | κ³±μ |
/ | λλμ |
% | λλ¨Έμ§ |
1 + 2 // 3 -> νΌμ°μ°μ : 1, 2 μ°μ°μ : +
4 - 1 // 3 -> νΌμ°μ°μ : 1, 4 μ°μ°μ : -
1 * 3 // 3 -> νΌμ°μ°μ : 1, 3 μ°μ°μ : *
6 / 2 // 3 -> νΌμ°μ°μ : 2, 6 μ°μ°μ : /
7 % 4 // 3 -> νΌμ°μ°μ : 4, 7 μ°μ°μ : %
π£ 2.2 λ¨ν μ°μ μ°μ°μ
- λ¨ν μ°μ μ°μ°μλ 1κ°μ νΌμ°μ°μλ₯Ό μ°μ°ν©λλ€.
λ¨ν μ°μ μ°μ°μ | μ€λͺ |
++ | κ°μ΄ 1 μ¦κ° |
-- | κ°μ΄ 1 κ°μ |
+ | λ€λ₯Έ ν¨κ³Ό μμ. |
- | λΆνΈλ₯Ό λ°μ μν¨λ€. μμ->μμ , μμ->μμ |
- (++), (--) μ°μ°μλ νΌμ°μ°μλ₯Ό κΈ°μ€μΌλ‘ μμ μλ, λ€μ μλμ λ°λΌ μλ―Έκ° μ‘°κΈ λ€λ¦ λλ€. νΌμ°μ°μμ μμ μμΌλ©΄ μ μ μ°μ°μ νκ² λμ΄, λ€λ₯Έ μ°μ°λ³΄λ€ λ¨Όμ μ§νμ΄ λ©λλ€. νΌμ°μ°μ λ€μ μμΌλ©΄ νμ μ°μ°μ νκ² λμ΄, λ€λ₯Έ μ°μ°μ΄ λλ λ€ μ§νμ΄ λ©λλ€.
let oper = 10;
let result;
// μ λμ
νμμ¦κ°
result = oper++;
console.log(result, oper); // 10, 11 -> resultμ 10μ λμ
ν operμ κ°μ 1 μ¦κ°
// μ μμ¦κ° νλμ
result = ++oper;
console.log(result, oper); // 12, 12 -> operμ κ°μ 1 μ¦κ°μν¨ ν resultμ λμ
// μ λμ
νμκ°μ
result = oper--;
console.log(result, oper); // 12, 11 -> resultμ 12λ₯Ό λμ
ν operμ κ°μ 1 κ°μ
// μ μκ°μ νλμ
result = --oper;
console.log(result, oper); // 10, 10 -> operμ κ°μ 1 κ°μμν¨ ν resultμ λμ
- (+)λ¨ν μ°μ°μλ μ«μ μ°μ°μμλ μ΄λ ν ν¨κ³Όλ μμ§λ§, νΌμ°μ°μκ° μ«μκ° μλ κ²½μ°μλ μ«μ νμ μΌλ‘ λ³νμν΅λλ€. μ΄λ νΌμ°μ°μκ° μ«μ νμ μΌλ‘ λ³νλλ κ²μ΄ μλ μλ‘μ΄ κ°μ΄ μμ±μ΄ λλ κ²μ λλ€.
+17 // 17
+'17' // 17
+true // 1
+false // 0
- (-)λ¨ν μ°μ°μλ μ«μ μ°μ°μμλ λΆνΈλ₯Ό λ°κΎΈκ³ , νΌμ°μ°μκ° μ«μ νμ μ΄ μλ λλ μ«μ νμ μΌλ‘ λ³νν©λλ€.
-17 // -17
-'17' // -17
-true // 1
-false // 0
π£ 2.3 λ¬Έμμ΄ μ°κ²° μ°μ°μ
- (+) μ°μ°μλ νΌμ°μ°μ μ€μ νλ μ΄μμ΄ λ¬Έμμ΄μΈ κ²½μ° λ¬Έμμ΄ μ°κ²° μ°μ°μλ‘ λμν©λλ€.
"1" + "μλ
νμΈμ" // "1μλ
νμΈμ"
6 + "17" // "617"
π‘ 3. ν λΉ μ°μ°μ (Assignment Operator)
- ν λΉ μ°μ°μλ μ€λ₯Έμͺ½μ μλ νΌμ°μ°μμ μ°μ° κ²°κ³Όλ₯Ό μΌμͺ½μ μλ λ³μμ ν λΉν©λλ€.
ν λΉ μ°μ°μ | νκΈ° | λμΌ νν |
= | x = y | x = y |
+= | x += y | x = x + y |
-= | x -= y | x = x - y |
*= | x *= y | x = x * y |
/= | x /= y | x = x / y |
%= | x %= y | x = x % y |
let x;
x = 5; // 5 -> 5 λμ
x += 5; // 10 -> 5 + 5
x -= 4; // 6 -> 10 -4
x *= 5; // 30 -> 6 * 5
x /= 3; // 10 -> 30 / 3
x %= 3; // 1 -> 10 % 3
π‘ 4. λΉκ΅ μ°μ°μ (Comparison Operator)
- λΉκ΅ μ°μ°μλ μΌμͺ½ νΌμ°μ°μμ μ€λ₯Έμͺ½ νΌμ°μ°μλ₯Ό λΉκ΅νμ¬ boolean κ°μ λ°νν©λλ€.
π£ 4.1 λλ±/ μΌμΉ λΉκ΅ μ°μ°μ
λΉκ΅ μ°μ°μ | μλ―Έ | νν | μ€λͺ |
== | λλ± λΉκ΅ | x == y | xμ yμ κ°μ΄ κ°λ€ |
=== | μΌμΉ λΉκ΅ | x === y | xμ yμ κ°κ³Ό νμ μ΄ κ°λ€ |
!= | λΆλ± λΉκ΅ | x != y | xμ yμ κ°μ΄ λ€λ₯΄λ€ |
!== | λΆμΌμΉ λΉκ΅ | x !== y | xμ yμ κ°κ³Ό νμ μ΄ λ€λ₯΄λ€ |
// λλ± λΉκ΅
10 == 10; // true
10 == '10'; // true
10 == 11; // false
// μΌμΉ λΉκ΅
10 === 10; // true
10 === '10'; // false --> κ°μ΄ κ°μ§λ§ νμ
μ΄ λ€λ¦
// λΆλ± λΉκ΅
10 != 10; // false
10 != 11; // true -> κ°μ΄ λ€λ¦
10 != '11'; // true -> κ°κ³Ό νμ
μ΄ λ€λ¦
// λΆμΌμΉ λΉκ΅
10 !== 10; // false
10 !== 11; // false -> κ°μ΄ λ€λ₯΄μ§λ§ νμ
μ΄ κ°μ
10 !== '11'; // true -> κ°κ³Ό νμ
μ΄ λ€λ¦
π£ 4.2 λμ κ΄κ³ λΉκ΅ μ°μ°μ
- λμ κ΄κ³ λΉκ΅ μ°μ°μλ νΌμ°μ°μμ ν¬κΈ°λ₯Ό λΉκ΅νμ¬ boolean κ°μΌλ‘ λ°νν©λλ€.
λμ κ΄κ³ λΉκ΅ μ°μ°μ | νν | μ€λͺ |
> | x > y | xκ° yλ³΄λ€ ν¬λ€ |
< | x < y | xκ° yλ³΄λ€ μλ€ |
>= | x >= y | xκ° yλ³΄λ€ ν¬κ±°λ κ°λ€ |
<= | x <= y | xκ° yλ³΄λ€ μκ±°λ κ°λ€ |
10 > 1 // true
10 > 10 // false
10 > 11 //false
10 < 1 // false
10 < 10 // false
10 < 11 //true
10 >= 1 // true
10 >= 10 // true
10 >= 11 //false
10 <= 1 // false
10 <= 10 // true
10 <= 11 //true
π‘ 5. μΌν 쑰건 μ°μ°μ(Ternary Operator)
- μΌν 쑰건 μ°μ°μλ 쑰건μμ κ²°κ³Όμ λ°λΌ λ°νν κ°μ κ²°μ ν©λλ€.
쑰건μ ? 쑰건μμ΄ trueμΌ λ λ°νν κ° : 쑰건μμ΄ falseμΌ λ λ°νν κ°
let name = 'bigone';
// nameμ΄ 'bigone'μ΄λ©΄ 'bigoneμ
λλ€!'λ₯Ό λ°ν, μλλ©΄ 'bigoneμ΄ μλλλ€!'λ₯Ό λ°ν
let result = name === 'bigone' ? 'bigoneμ
λλ€!' : 'bigoneμ΄ μλλλ€!';
// 1. nameμ΄ 'bigone'μΈμ§ νλ¨νμ¬ boolean κ°(true, false) λ°ν
// 2.1 λ°νλ boolean κ°μ΄ trueμ΄λ©΄ resultμ 'bigoneμ
λλ€!'λ₯Ό ν λΉ
// 2.2 λ°νλ boolean κ°μ΄ falseμ΄λ©΄ resultμ 'bigoneμ΄ μλλλ€!'λ₯Ό ν λΉ
console.log(result) // 'bigoneμ
λλ€!'
π‘ 6. λ Όλ¦¬ μ°μ°μ(Logical Operator)
- λ Όλ¦¬ μ°μ°μλ μΌμͺ½ νΌμ°μ°μμ μ€λ₯Έμͺ½ νΌμ°μ°μλ₯Ό λ Όλ¦¬ μ°μ°ν©λλ€.
λ Όλ¦¬ μ°μ°μ | μλ―Έ |
|| | λ Όλ¦¬ν©(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
// λ
Όλ¦¬ λΆμ μ°μ°μ !
!true // false
!false // true
- λ Όλ¦¬ λΆμ μ°μ°μ(!)λ μΈμ λ boolean κ°μ λ°ν νμ§λ§, λ Όλ¦¬ν© μ°μ°μ(||)μ λ Όλ¦¬κ³± μ°μ°μ(&&)λ μΌλ°μ μΌλ‘λ booleanκ°μ λ°ννμ§λ§, λ°λμ booleanκ°μ λ°ννλ κ²μ μλλλ€.
// μ묡μ νμ
λ³ν
!0 // true
// λ¨μΆ νκ°
'Cat' && 'Dog' // 'Dog'
// &&μ κ²½μ° λͺ¨λ νΌμ°μ°μκ° trueμΈ κ²½μ°μ trueλ₯Ό λ°ννλ€.
// κ·Έλ¬λ―λ‘ λͺ¨λ TrueμΌ κ²½μ°μ λ§μ§λ§ κ°μ΄ λ°νμ΄ λλ€.
'Cat' && 'Dog' && 'Bird' // 'Bird'
'Cat' || 'Dog' // 'Cat'
// ||μ κ²½μ° νΌμ°μ°μ μ€ νλλΌλ trueμΈ κ²½μ°μ trueλ₯Ό λ°ννλ€.
// κ·Έλ¬λ―λ‘ μ²μμΌλ‘ λμ¨ true κ°μ λ°ννλ€.
false || 'Cat' || 'Dog' // 'Cat'
π‘ 7. μΌν μ°μ°μ
- μΌν μ°μ°μ(,)λ μΌμͺ½ νΌμ°μ°μλΆν° μ°¨λ‘λλ‘ νκ°νκ³ λ§μ§λ§ νΌμ°μ°μμ νκ° κ²°κ³Όλ₯Ό λ°νν©λλ€.
let x, y, z;
x = 5, y = 10, z = 15; // 15
z+=1, y+=2, x+=3; // 8
π‘ 8. κ·Έλ£Ή μ°μ°μ
- κ·Έλ£Ή μ°μ°μλ κ·Έλ£Ή λ΄μ ννμμ μ΅μ°μ μΌλ‘ μ°μ°ν©λλ€.
5 * 3 + 2 // 17
5 * (3 + 2) // 25
π‘ 9. typeof μ°μ°μ
- typeof μ°μ°μλ νΌμ°μ°μμ λ°μ΄ν° νμ μ λ°νν©λλ€.
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 function () {} // "function"
// μλ°μ€ν¬λ¦½νΈμ μ€κ³ μ€λ₯
typeof null // "object"
π μ 리
- μ°μ°μλ μ΄λ ν μ°μ°μ ν μ§ νννλ κΈ°νΈμ΄λ€.
- μ°μ μ°μ°μλ μ£Όλ‘ μ«μ νμ μ μ°μ°ν λ μ¬μ©νλ€.
- λΉκ΅ μ°μ°μλ λ νΌμ°μ°μλ₯Ό λΉκ΅ν λ μ¬μ©νλ€.
- μΌν 쑰건 μ°μ°μλ νΌμ°μ°μμ κ²°κ³Όμ λ°λΌ λ°νν΄μΌ λλ κ°μ΄ λ μ€ νλ μΌ λ μ¬μ©νλ€.
- λ Όλ¦¬ μ°μ°μλ λ Όλ¦¬μ μΈ μ°μ°μ νκ³ μΆμ λ μ¬μ©νλ€.
- μΌν μ°μ°μλ μ£Όλ‘ μ¬λ¬ κ°μ λ³μλ₯Ό ν λ²μ κ°κ° μ°μ°ν λ μ¬μ©νλ€.
- κ·Έλ£Ή μ°μ°μλ μ΄λ ν μ°μ°μ μ΅μ°μ μΌλ‘ νκΈ° μν΄ μ¬μ©νλ€.
- typeof μ°μ°μλ νΌμ°μ°μμ λ°μ΄ν° νμ μ ꡬνκΈ° μν΄ μ¬μ©νλ€.
κΈ΄ κΈ μ½μ΄μ£Όμ
μ κ°μ¬ν©λλ€ :)
νλ¦° λ΄μ©μ΄ μκ±°λ, λ§λΆμΌ λ΄μ©μ΄ μλ€λ©΄ μΈμ λ μ§ λκΈ λ¬μμ£ΌμΈμ!
μ κΈμ΄ μ‘°κΈμ΄λλ§ μ½μΌμ λΆλ€μκ² λμμ΄ λλλ‘ λ
Έλ ₯νκ² μ΅λλ€
λ€μ νΈμ 봬μ~