μ°μ°μλ νλ μ΄μμ ννμμ λμμΌλ‘ μ°μ , ν λΉ, λΉκ΅, λ Όλ¦¬, νμ , μ§μ μ°μ°(operation) λ±μ μνν΄ νλμ κ°μ λ§λ λ€. μ΄ λ μ°μ°μ λμμ νΌμ°μ°μ(operand)λΌκ³ νλ€. νΌμ°μ°μλ κ°μΌλ‘ νκ°λ μ μλ ννμμ΄μ΄μΌ νλ©° νΌμ°μ°μμ μ°μ°μμ μ‘°ν©μΌλ‘ μ΄λ€μ§ μ°μ°μ ννμλ κ°μΌλ‘ νκ°λ μ μλ ννμμ΄λ€.
νΌμ°μ°μλ βκ°βμ΄λΌλ λͺ μ¬μ μν μ νκ³ μ°μ°μλ βνΌμ°μ°μλ₯Ό μ°μ°νμ¬ μλ‘μ΄ κ°μ λ§λ λ€βλΌλ λμ¬ μν μ νλ€.
// μ°μ μ°μ°μ
5 * 4
// λ¬Έμμ΄ μ°κ²° μ°μ°μ
'My name is ' + 'Lee'
// ν λΉ μ°μ°μ
color = 'red'
// λΉκ΅ μ°μ°μ
3 > 5
// λ
Όλ¦¬ μ°μ°μ
true && false
// νμ
μ°μ°μ
typeof 'Hi'
μ°μ μ°μ°μ(arithmetic operatot) λ νΌμ°μ°μλ₯Ό λμμΌλ‘ μνμ κ³μ°μ μνν΄ μλ‘μ΄ μ«μ κ°μ λ§λ λ€. μ°μ μ°μ°μ΄ λΆκ°λ₯ ν κ²½μ° NaNμ λ°ννλ€.
μ°μ μ°μ°μλ νΌμ°μ°μμ κ°μμ λ°λΌ μ΄ν μ°μ μ°μ°μμ λ¨ν μ°μ μ°μ°μλ‘ κ΅¬λΆν μ μλ€.
μ΄νμ°μ μ°μ°μλ 2κ°μ νΌμ°μ°μλ₯Ό μ°μ μ°μ° νμ¬ μ«μ κ°μ λ§λ λ€.
λ¨ν μ°μ μ°μ°μλ 1κ°μ νΌμ°μ°μλ₯Ό μ°μ μ°μ°νμ¬ μ«μ κ°μ λ§λ λ€.
μ¦κ°/κ°μ μ°μ°μλ νΌμ°μ°μμ κ°μ λ³κ²½νλ λΆμν¨κ³Όκ° μμΌλ©°, μμΉμ μλ―Έκ° μλ€.
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
+ μ°μ°μλ νΌμ°μ°μμ μ΄λ ν ν¨κ³Όλ μμΌλ©°, μμλ₯Ό μμλ‘ λ°μ νμ§λ μλλ€.
- λ¨ν μ°μ°μλ νΌμ°μ°μμ λΆνΈλ₯Ό λ°μ ν κ°μ λ°ννλ€. μ΄ λ, νΌμ°μ°μλ₯Ό λ³κ²½νλ κ²μ μλκ³ λΆνΈλ₯Ό λ°μ ν κ°μ μμ±ν΄ λ°ννλ€. λ°λΌμ λΆμν¨κ³Όλ μλ€.
var x = '1';
// λ¬Έμμ΄μ μ«μ νμ
μΌλ‘ νμ
λ³ννλ€.
console.log(+x);
// λΆμ ν¨κ³Όλ μλ€.
console.log(x);
x = true
// λΆμΈλ¦¬μΈ κ°μ μ«μλ‘ νμ
λ³ννλ€.
console.log(+x);
// λΆμ ν¨κ³Όλ μλ€.
console.log(x);
// λΆνΈλ₯Ό λ°μ νλ€.
-(-10); // 10
// λ¬Έμμ΄μ μ«μλ‘ νμ
λ³ννλ€.
-'10'; // -10
+ μ°μ°μλ νΌμ°μ°μμ€ νλ μ΄μμ΄ λ¬Έμμ΄μΈ κ²½μ° λ¬Έμμ΄ μ°κ²° μ°μ΄μλ‘ λμνλ€. μλ μμ μμ μ£Όλͺ©ν κ²μ κ°λ°μμ μλμ μκ΄μμ΄ μλ°μ€ν¬λ¦½νΈ μμ§μ μν΄ μ묡μ μΌλ‘ νμ μ΄ μλ λ³νλλκ²μ΄λ€. μ΄λ₯Ό μ묡μ νμ λ³ν, λλ νμ κ°μ λ³νμ΄λΌκ³ νλ€.
// λ¬Έμμ΄ μ°κ²° μ°μ°μ
'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
μλ©΄ μμλ‘ μ΄μν μλ°μ€ν¬λ¦½νΈ.jpg
ν λΉ μ°μ°μλ μ°νμ μλ νΌμ°μ°μμ νκ° κ²°κ³Όλ₯Ό μνμ μλ λ³μμ ν λΉνλ€. ν λΉμ°μ°μλ μ’νμ λ³μμ κ°μ ν λΉνλ―λ‘ λ³μ κ°μ΄ λ³νλ λΆμ ν¨κ³Όκ° μλ€.
λΉκ΅ μ°μ°μλ μ’νκ³Ό μ°νμ νΌμ°μ°μλ₯Ό λΉκ΅ν λ€μ κ·Έ κ²°κ³Όλ₯Ό λΆμΈλ¦¬μΈ κ°μΌλ‘ λ°ννλ€.
λλ±/μΌμΉ λΉκ΅ μ°μ¬μλ μ’νκ³Ό μ°νμ νΌμ°μ°μκ° κ°μκ°μΈμ§λ₯Ό λΉκ΅ν΄ λΆμΈλ¦¬μΈ κ°μΌλ‘ λ°ννλλ° μ΄λ λΉκ΅νλ μ격μ±μ μ λκ° λ€λ₯΄λ€.
λλ± λΉκ΅(==) μ°μ°μλ μ’νκ³Ό μ°νμ νΌμ°μ°μλ₯Ό λΉκ΅ν λ λ¨Όμ μ묡μ νμ
λ³νμ ν΅ν΄ νμ
μ μΌμΉμν¨ ν κ°μ κ°μΈμ§ λΉκ΅νλ€.
// λλ± λΉκ΅
5 == 5; // true
// νμ
μ λ€λ₯΄μ§λ§ μ묡μ νμ
λ³νμ ν΅ν΄ νμ
μ μΌμΉμν€λ©΄ λλ±νλ€.
5 == '5'; // true
// λ€μκ³Ό κ°μ λλ± λΉκ΅λ€μ κ²°κ³Όλ₯Ό μμΈ‘νκΈ° μ΄λ ΅λ€.
'0' == ''; // false
0 == ''; // true
0 == '0' // true
false == 'false'; // false
false == '0'; // true
false == null; // false
false == undefined; // false
μΌμΉ λΉκ΅(===) μ°μ°μλ μ’νκ³Ό μ°νμ νΌμ°μ°μκ° νμ λ κ°κ³ κ°λ κ°μ κ²½μ°μ ννμ¬ trueλ₯Ό λ°ννλ€.
// μΌμΉλΉκ΅
5 === 5; // true
// μ묡μ νμ
λ³νμ νμ§ μκ³ κ°μ λΉκ΅νλ€.
5 === '5'; // false
// NaNμ μμ κ³Ό μΌμΉνμ§ μλ μ μΌν κ°μ΄λ€.
NaN === NaN; // false
// Number.isNaN ν¨μλ μ§μ ν κ°μ΄ NaNμΈμ§ νμΈνκ³ κ·Έ κ²°κ³Όλ₯Ό λΆμΈλ¦¬μΈ κ°μΌλ‘ λ°ννλ€.
Number.isNaN(NaN); // true
Number.isNaN(10); // false
Number.isNaN(1 + undefined); // true
μΌμΉ λΉκ΅μ°μ°μμμ NaNμ μμ κ³Ό μΌμΉνμ§μλ μ μΌν κ°μΈλ€. λ°λΌμ μ«μκ° NaNμΈμ§ μ‘°μ¬νλ €λ©΄ λΉνΈμΈ ν¨μ Number.inNaNμ μ¬μ©νλ€.
π§ Object.is λ©μλ
ES6 μμ λμ λ Object.is λ©μλλ λ€μκ³Ό κ°μ΄ μ νν λΉκ΅κ²°κ³Όλ₯Ό λ°ννλ€.
-0 === +0; // true Object.is(-0, +0); // false NaN === NaN; // false Objec.is(NaN, NaN) // true
λΆλλ± λΉκ΅μ°μ°μ(β ) μ λΆμΌμΉ λΉκ΅ μ°μ°μ(β =)λ κ°κ° λλ±λΉκ΅ μ°μ°μ(==)μ μΌμΉλΉκ΅ μ°μ°μ(===) μ λ°λκ°λ μ΄λ€.
λμ κ΄κ³ λΉκ΅ μ°μ°μλ νΌμ°μ°μμ ν¬κΈ°λ₯Ό λΉκ΅νμ¬ λΆμΈλ¦¬μΈ κ°μ λ°ννλ€.
μΌν 쑰건 μ°μ°μλ 쑰건μμ νκ° κ²°κ³Όμ λ°λΌ λ°νν κ°μ κ²°μ νλ€. λΆμν¨κ³Όλ μμΌλ©° λ€μκ³Ό κ°μ΄ μ¬μ©νλ€.
쑰건μ ? 쑰건μμ΄ trueμΌ λ λ°νν κ° : 쑰건μμ΄ falseμΌ λ λ°νν κ°
// 쑰건μ score >= 60 μ΄ μ°Έ(μΌμΉ λΉκ΅)μ΄λ©΄ 'pass'λ°ν // 쑰건μ score >= 60 μ΄ κ±°μ§(μΌμΉ λΉκ΅)μ΄λ©΄ 'fail'λ°ν var result = score >=60 ? 'pass' : 'fail';
λ¬Όμν μμ 첫 λ²μ§Έ νΌμ°μ°μλ λΆμΈλ¦¬μΈ νμ μ κ°μΌλ‘ νκ°λ ννμ(쑰건μ)μ΄λ€. λ§μ½ 쑰건μμ νκ° κ²°κ³Όκ° λΆμΈλ¦¬μΈ κ°μ΄ μλλ©΄ λΆμΈλ¦¬μΈ κ°μΌλ‘ μ묡μ νμ λ³ν λλ€.
μΌν 쑰건 μ°μ°μμ 첫 λ²μ§Έ νΌμ°μ°μλ 쑰건μμ΄λ―λ‘ μΌν 쑰건 μ°μ°μμ ννμμ 쑰건문μ΄λ€. λ°λΌμ if-else λ¬Έμ μ¬μ©ν΄λ μΌν 쑰건 μ°μ°μ ννμκ³Ό μ μ¬νκ² μ²λ¦¬ν μ μμ§λ§ if-else λ¬Έμ ννμμ΄ μλ λ¬Έμ΄λ€. λ°λΌμ if-else λ¬Έμ κ°μ²λΌ μ¬μ©ν μ μκ³ , μΌν 쑰건 μ°μ°μ ννμμ κ°μΌλ‘ μ¬μ©ν μ μλ€.
쑰건μ λ°λΌ μ΄λ€ κ°μ κ²°μ ν΄μΌ νλ€λ©΄ if-else λ¬Έλ³΄λ€ μΌν 쑰건 μ°μ°μ ννμμ μ¬μ©νλ νΈμ΄ μ 리νμ§λ§ 쑰건μ λ°λΌ μνν΄μΌ ν λ¬Έμ΄ μλλΌ μ¬λ¬κ°λΌλ©΄ if-else λ¬Έμ΄ κ°λ μ±μ΄ λ μ’λ€.
λ
Όλ¦¬ μ°μ°μλ μ°νκ³Ό μ’νμ νΌμ°μ°μλ₯Ό λ
Όλ¦¬ μ°μ°νλ€.
// λ
Όλ¦¬ν©(||) μ°μ°μ
true || true; // true
true || false; // true
false || true; // true
false || false; // false
// λ
Όλ¦¬κ³±(&&) μ°μ°μ
true && true; // true
true && false; // false
false && true; // false
false && false; // false
λ Όλ¦¬ λΆμ (!) μ°μ°μλ μΈμ λ λΆμΈλ¦¬μΈ κ°μ λ°ννλ€. νΌμ°μ°μκ° λΆμΈλ¦¬μΈ κ°μ΄ μλλλΌλ μΈμ λ μ묡μ νμ λ³νμ ν΅ν΄ λΆμΈλ¦¬μΈ κ°μΌλ‘ νμ λ³νλμ΄ μ°μ°νλ€.
// μ묡μ νμ
λ³ν
!0; // true
!'Hello'; // false
π§ λ λͺ¨λ₯΄κ°μ λ²μΉ
λ Όλ¦¬ μ°μ°μλ‘ κ΅¬μ±λ 볡μ‘ν ννμμ κ°λ μ±μ΄ μ’μ§μμ νλμ μ΄ν΄νκΈ° μ΄λ €μΈλκ° μλ€. μ΄λ¬ν κ²½μ° λ λͺ¨λ₯΄κ°μ λ²μΉμ νμ©νλ©΄ 볡μ‘ν ννμμ μ’ λ κ°λ μ± μ’μ ννμμΌλ‘ λ³νν μ μλ€.
μΌν(,) μ°μ°μλ μΌμͺ½ νΌμ°μ°μλΆν° μ°¨λ‘λλ‘ νΌμ°μ°μλ₯Ό νκ°νκ³ λ§μ§λ§ νΌμ°μ°μμ νκ°κ° λλλ©΄ λ§μ§λ§ νΌμ°μ°μμ νκ° κ²°κ³Όλ₯Ό λ°ννλ€.
var x, y, z;
x = 1, y = 2, z = 3; // 3
κ·Έλ£Ήμ°μ°μ() λ₯Ό μ¬μ©νλ©΄ μ°μ°μμ μ°μ μμλ₯Ό μ‘°μ ν μ μλ€.γ·
10 * 2 + 3; // 34
// κ·Έλ£Ή μ°μ°μλ₯Ό μ¬μ©νμ¬ μ°μ μμλ₯Ό μ‘°μ
10 * (2 + 3) // 50
typeof μ°μ°μλ νΌμ°μ°μμ λ°μ΄ν° νμ μ μλμ 7κ°μ λ¬Έμμ΄λ‘ λ°ννλ€.
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"
typeof μ°μ°μλ‘ nullκ°μ μ°μ°ν΄λ³΄λ©΄ βobjectβλ₯Ό λ°ννλ λ²κ·Έκ° μλλ° null νμ
μΈμ§ νμΈνκΈ° μν΄μλ μΌμΉ μ°μ°μλ₯Ό μ¬μ©ν΄μΌνλ€.
ES7μμ λμ λ μ§μ μ°μ°μλ μ’νμ νΌμ°μ°μλ₯Ό λ°μΌλ‘, μ°νμ νΌμ°μ°μλ₯Ό μ§μλ‘ κ±°λμ κ³± νμ¬ μ«μ κ°μ λ°ννλ€.
2 ** 2; // 4
// μμλ₯Ό λ°μΌλ‘ μ¬μ©νλ €λ©΄ λ€μκ³Ό κ°μ΄ κ΄νΈλ‘ λ¬Άμ΄μΌ νλ€.
(-5) ** 2; // 25
// ν λΉμ°μ°μμ κ°μ΄ μ¬μ© κ°λ₯νλ€.
var num
num **= 2 // 25
μ§κΈκΉμ§ μκ°ν μ°μ°μ μΈμλ λ€μν μ°μ°μκ° μλ€.
λλΆλΆμ μ°μ°μλ λ€λ₯Έ μ½λμ μν₯μ μ£Όμ§ μλλ€. νμ§λ§ μΌλΆ μ°μ°μλ λ€λ₯Έμ½λμ μν₯μ μ£Όλ λΆμ ν¨κ³Όκ° μλ€. λΆμν¨κ³Όκ° μλ μ°μ°μλ ν λΉμ°μ°μ(=), μ¦κ°/κ°μ μ°μ°μ(++/β), delete μ°μ°μμ΄λ€.
μ°μ°μλ μ’
λ₯κ° λ§μ μ°μ μμλ₯Ό λͺ¨λ κΈ°μ΅νκΈ° μ΄λ €μ°λ―λ‘ κ·Έλ£Ήμ°μ°μλ₯Ό μ¬μ©νλκ²μ κΆμ₯νλ€.