04μ₯ λ³μ
λ³μλ 무μμΈκ°? μ νμνκ°?
νλ‘κ·Έλλ° μΈμ΄λ κΈ°μ΅νκ³ μΆμ κ²μ λ©λͺ¨λ¦¬μ μ μ₯νκ³ , μ μ₯λ κ°μ μ½μ΄ λ€μ¬ μ¬ μ¬μ©νκΈ° μν΄ λ³μλΌλ λ©μ»€λμ¦μ μ 곡νλ€.
λ³μλ νλμ κ°μ μ μ₯νκΈ° μν΄ ν보ν λ©λͺ¨λ¦¬ κ³΅κ° μ체 λλ κ·Έ λ©λͺ¨λ¦¬ 곡κ°μ μλ³νκΈ° μν΄ λΆμΈ μ΄λ¦μ λ§νλ€. κ°λ¨ν λ§νμλ©΄ λ³μλ νλ‘κ·Έλλ° μΈμ΄μμ κ°μ μ μ₯νκ³ μ°Έμ‘°νλ λ©μ»€λμ¦μΌλ‘, κ°μ μμΉλ₯Ό κ°λ¦¬ν€λ μμ§μ μΈ μ΄λ¦μ΄λ€.
λ³μμ κ°μ μ μ₯νλ κ²μ ν λΉ(λμ , μ μ₯)μ΄λΌ νκ³ , λ³μμ μ μ₯λ κ°μ μ½μ΄ λ€μ΄λ κ²μ μ°Έμ‘°λΌ νλ€.
μλ³μ
μλ³μλ μ΄λ€ κ°μ ꡬλ³ν΄μ μλ³ν μ μλ κ³ μ ν μ΄λ¦μ λ§νλ€. λ³μ, ν¨μ, ν΄λμ€ λ±μ μ΄λ¦μ λͺ¨λ μλ³μλ€. μ μΈμ μν΄ μλ°μ€ν¬λ¦½νΈ μμ§μ μλ³μμ μ‘΄μ¬λ₯Ό μλ¦°λ€.
μλ³μλ‘ κ°μ ꡬλ³ν΄μ μλ³νλ€λ κ²μ μλ³μκ° κΈ°μ΅νκ³ μλ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό ν΅ν΄ λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯λ κ°μ μ κ·Όν μ μλ€λ μλ―Έλ€. μλ³μλ κ°μ΄ μλλΌ λ©λͺ¨λ¦¬ μ£Όμμ λΆμΈ μ΄λ¦μ΄λΌκ³ ν μ μλ€.
ES5μ ES6λ μκ΄μλ λ³κ°μ μ¬μμ΄ μλλ€. ES6 μ΄μ μ¬μμΌλ‘ ꡬνλ μ½λλ ES6 κΈ°λ°μ μλ°μ€ν¬λ¦½νΈ μμ§μμ λͺ¨λ μ μμ μΌλ‘ λμνλ€. μ¦, ES6λ κΈ°λ³Έμ μΌλ‘ νμ νΈνμ±μ μ μ§νλ©΄μ ES5μ κΈ°λ° μμ μλ‘μ΄ κΈ°λ₯μ μΆκ°ν κ²μ΄λ€. λ€μ λ§ν΄, ES6λ ES5μ μμ μ§ν©μ΄λ€.
λ³μ μ μΈ
λ³μ μ μΈμ΄λ λ³μλ₯Ό μμ±νλ κ²μ λ§νλ€.
// var ν€μλλ‘ λ³μ μ μΈ
var score;
μλ°μ€ν¬λ¦½νΈ μμ§μ λ³μ μ μΈμ 2λ¨κ³μ κ±°μ³ μννλ€.
- μ μΈ λ¨κ³ : λ³μ μ΄λ¦μ λ±λ‘ν΄μ μλ°μ€ν¬λ¦½νΈ μμ§μ λ³μμ μ‘΄μ¬λ₯Ό μλ¦°λ€
- μ΄κΈ°ν λ¨κ³ : κ°μ μ μ₯νκΈ° μν λ©λͺ¨λ¦¬ 곡κ°μ ν보νκ³ μ묡μ μΌλ‘
undefined
λ₯Ό ν λΉν΄ μ΄κΈ°ννλ€.
λ§μ½ μ μΈνμ§ μμ μλ³μμ μ κ·Όνλ©΄ ReferenceError(μ°Έμ‘° μλ¬)κ° λ°μνλ€.
ν€μλλ μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό ν΄μνκ³ μ€ννλ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ μνν λμμ κ·μ ν μΌμ’ μ λͺ λ Ήμ΄λ€.
λ³μ μ μΈμ μ€ν μμ κ³Ό λ³μ νΈμ΄μ€ν
console.log(scroe); // undefined
var score; // λ³μ μ μΈλ¬Έ
console.log(score)
κ° μ€νλλ μμ μλ μμ§ scroe
λ³μκ° μ€νλμ§ μμμ§λ§ μ°Έμ‘° μλ¬κ° λ°μνμ§ μκ³ undefined
κ° μΆλ ₯ λλ€.
κ·Έ μ΄μ λ λ³μ μ μΈμ΄ μμ€μ½λκ° ν μ€μ© μμ°¨μ μΌλ‘ μ€νλλ μμ , μ¦ λ°νμμ΄ μλλΌ κ·Έ μ΄μ λ¨κ³μμ λ¨Όμ μ€νλκΈ° λλ¬Έμ΄λ€.
μμ€μ½λ μ€νμ μν μ€λΉ λ¨κ³μΈ μμ€μ½λμ νκ° κ³Όμ μμ μλ°μ€ν¬λ¦½νΈ μμ§μ λ³μ μ μΈμ ν¬ν¨ν λͺ¨λ μ μΈλ¬Έμ μμ€μ½λμμ μ°Ύμλ΄μ λ¨Όμ μ€ννλ€. λ°λΌμ λ³μ μ μΈμ΄ μμ€μ½λμ μ΄λμ μμΉνλμ§μ μκ΄μμ΄ μ΄λμλ μ§ λ³μλ₯Ό μ°Έμ‘°ν μ μλ€.
λ³μ μ μΈλ¬Έμ΄ μ½λμ μ λλ‘ λμ΄ μ¬λ €μ§ κ²μ²λΌ λμνλ μλ°μ€ν¬λ¦½νΈ κ³ μ μ νΉμ§μ λ³μ νΈμ΄μ€ν μ΄λΌ νλ€.
κ°μ ν λΉ
λ³μμ κ°μ ν λΉν λλ ν λΉ μ°μ°μ =
λ₯Ό μ¬μ©νλ€. ν λΉ μ°μ°μλ μ°λ³μ κ°μ μ’λ³μ λ³μμ ν λΉνλ€.
μ£Όμν μ μ λ³μ μ μΈκ³Ό κ°μ ν λΉ μ€ν μμ μ΄ λ€λ₯΄λ€λ κ²μ΄λ€. λ³μ μ μΈμ λ°νμ μ΄μ μ λ¨Όμ μ€νλμ§λ§ κ°μ ν λΉμ λ°νμμ μ€νλλ€.
console.log(score); // undefined
var score; // λ³μ μ μΈ
score= 80; // κ°μ ν λΉ
console.log(score); // 80
score λ³μμ κ°μ ν λΉνλ©΄ score λ³μμ κ°μ undefinedμμ μλ‘κ² ν λΉν μ«μ κ° 80μΌλ‘ μ¬ν λΉ λλ€.
console.log(score); // undefined
var score= 80; // λ³μ μ μΈκ³Ό κ°μ ν λΉ
console.log(score); // 80
λ³μμ κ°μ ν λΉν λ undefinedκ° μ μ₯λμ΄ μλ λ©λͺ¨λ¦¬ 곡κ°μ μ§μ°λ κ²μ΄ μλλΌ μλ‘μ΄ λ©λͺ¨λ¦¬ 곡κ°μ ν보νκ³ κ·Έκ³³μ ν λΉ κ° 80μ μ μ₯νλ€.
κ°μ μ¬ν λΉ
μ¬ν λΉμ΄λ μ΄λ―Έ κ°μ΄ ν λΉλμ΄ μλ λ³μμ μλ‘μ΄ κ°μ λλ€μ ν λΉνλ κ²μ λ§νλ€.
λ§μ½ κ°μ μ¬ν λΉν μ μμ΄μ λ³μμ μ μ₯λ κ°μ λ³κ²½ν μ μλ€λ©΄ λ³μκ° μλλΌ μμ(constant)λΌ νλ€.
κ°μ΄ μ¬ν λΉλλ©΄ μ΄κΈ°μ ν λΉλ undefined λ μ΄μ μ ν λΉλ κ°μ λΆνμνλ€κ³ νλ¨λμ΄ κ°λΉμ§ μ½λ ν°μ μν΄ λ©λͺ¨λ¦¬μμ μλ ν΄μ λλ€.
κ°λΉμ§ μ½λ ν°λ μ ν리μΌμ΄μ μ΄ ν λΉν λ©λͺ¨λ¦¬ 곡κ°μ μ£ΌκΈ°μ μΌλ‘ κ²μ¬νμ¬ λ μ΄μ μ¬μ©λμ§ μλ λ©λͺ¨λ¦¬λ₯Ό ν΄μ νλ κΈ°λ₯μ λ§νλ€.
μλ³μ λ€μ΄λ° κ·μΉ
- μλ³μλ νΉμλ¬Έμλ₯Ό μ μΈν λ¬Έμ, μ«μ, μΈλμ€μ½μ΄(_), λ¬λ¬ κΈ°νΈ($)λ₯Ό ν¬ν¨ν μ μλ€.
- μΈλμ€μ½μ΄(_), λ¬λ¬ κΈ°νΈ($) μΈ νΉμλ¬Έμλ μ«μλ‘ μμνλ κ²μ νμ©νμ§ μλλ€.
- μμ½μ΄λ μλ³μλ‘ μ¬μ©ν μ μλ€.
- μΌλ°μ μΌλ‘ λ³μλ ν¨μμ μ΄λ¦μλ μΉ΄λ© μΌμ΄μ€λ₯Ό μ¬μ©νκ³ μμ±μ ν¨μ, ν΄λμ€μ μ΄λ¦μλ νμ€μΉΌ μΌμ΄μ€λ₯Ό μ¬μ©νλ€.
05μ₯ ννμκ³Ό λ¬Έ
κ°
κ°(value)μ ννμμ΄ νκ°λμ΄ μμ±λ κ²°κ³Όλ₯Ό λ§νλ€. νκ°λ μμ ν΄μν΄μ κ°μ μμ±νκ±°λ μ°Έμ‘°νλ κ²μ μλ―Ένλ€.
// sum λ³μμ ν λΉλλ κ²μ 10 + 20μ΄ νκ°λ κ²°κ³ΌμΈ μ«μ κ° 30μ΄λ€.
var sum = 10 + 20
리ν°λ΄
리ν°λ΄(literal)μ μ¬λμ΄ μ΄ν΄ν μ μλ λ¬Έμ λλ μ½μλ κΈ°νΈλ₯Ό μ¬μ©ν΄ κ°μ μμ±νλ νκΈ°λ²μ λ§νλ€.
μμλ‘ μ«μ 리ν°λ΄ 3μ μ½λμ κΈ°μ νλ©΄ μλ°μ€ν¬λ¦½νΈ μμ§μ μ½λκ° μ€νλλ μμ μΈ λ°νμμ μ΄λ₯Ό νκ°ν΄ μ«μ κ° 3μ μμ±νλ€.
ννμ
ννμ(expression)μ κ°μΌλ‘ νκ°λ μ μλ λ¬Έ(statement)μ΄λ€. μ¦ ννμμ΄ νκ°λλ©΄ μλ‘μ΄ κ°μ μμ±νκ±°λ κΈ°μ‘΄ κ°μ μ°Έμ‘°νλ€.
λ¬Έ
λ¬Έ(statement)μ νλ‘κ·Έλ¨μ ꡬμ±νλ κΈ°λ³Έ λ¨μμ΄μ μ΅μ μ€ν λ¨μλ€. λ¬Έμ μ§ν©μΌλ‘ μ΄λ€μ§ κ²μ΄ λ°λ‘ νλ‘κ·Έλ¨μ΄λ©°, λ¬Έμ μμ±νκ³ μμμ λ§κ² λμ΄νλ κ²μ΄ νλ‘κ·Έλλ°μ΄λ€.
λ¬Έμ μ¬λ¬ ν ν°μΌλ‘ ꡬμ±λλ€. ν ν°μ΄λ λ¬Έλ²μ μΈ μλ―Έλ₯Ό κ°μ§λ©°, λ¬Έλ²μ μΌλ‘ λ μ΄μ λλ μ μλ μ½λμ κΈ°λ³Έ μμλ₯Ό μλ―Ένλ€.
var sum = 1 + 2;
// var, sum, =, 1, +, 2 λ λͺ¨λ ν ν°μ΄λ©° λ¬Έμ μ¬λ¬ ν ν°μΌλ‘ ꡬμ±λλ€.
μΈλ―Έμ½λ‘ κ³Ό μΈλ―Έμ½λ‘ μλ μ½μ κΈ°λ₯
- μΈλ―Έμ½λ‘ (;)μ λ¬Έμ μ’ λ£λ₯Ό λνλΈλ€.
- μ½λ λΈλ‘({ … }) λ€μλ μΈλ―Έμ½λ‘ μ λΆμ΄μ§ μλλ€.
- μλ°μ€ν¬λ¦½νΈ μμ§μ΄ μΈλ―Έμ½λ‘ μλ μ½μ κΈ°λ₯μ μννκΈ° λλ¬Έμ μΈλ―Έμ½λ‘ μ μλ΅ κ°λ₯νλ€. (κ·Έλ¬λ κ°λ°μμ μμΈ‘κ³Ό μΌμΉνμ§ μλ κ²½μ°λ μμΌλ λΆμ΄λ κ²μ κΆμ₯νκΈ°λ νλ€.)
ννμμΈ λ¬Έκ³Ό ννμμ΄ μλ λ¬Έ
// λ³μ μ μΈλ¬Έμ κ°μΌλ‘ νκ°λ리 μ μμΌλ―λ‘ ννμμ΄ μλλ€
var x;
// x = 1 + 2λ ννμμ΄λ©΄μ μμ ν λ¬Έμ΄κΈ°λ νλ€.
x = 1 + 2;
06μ₯ λ°μ΄ν° νμ
- μμ νμ
- μ«μ(number) νμ : μ«μ, μ μμ μ€μ κ΅¬λΆ μμ΄ νλμ μ«μ νμ λ§ μ‘΄μ¬
- λ¬Έμμ΄(string) νμ : λ¬Έμμ΄
- λΆλ¦¬μΈ(boolean) νμ : λ Όλ¦¬μ μ°Έ(true)κ³Ό κ±°μ§(false)
- undefined νμ : var ν€μλλ‘ μ μΈλ λ³μμ μ묡μ μΌλ‘ ν λΉλλ κ°
- null νμ : κ°μ΄ μλ€λ κ²μ λͺ μν λ μ¬μ©νλ κ°
- μ¬λ²(symbol) νμ : ES6μμ μΆκ°λ νμ
- κ°μ²΄ νμ
- κ°μ²΄, ν¨μ, λ°°μ΄ λ±
μ«μ νμ
ESMAScript μ¬μμ λ°λ₯΄λ©΄ μ«μ νμ μ κ°μ λ°°μ λ°λ 64λΉνΈ λΆλμμμ νμμ λ°λ₯Έλ€. μ¦ λͺ¨λ μλ₯Ό μ€μλ‘ μ²λ¦¬νλ€. μ΄λ μ μλ‘ νμλλ€ ν΄λ μ¬μ€μ μ€μλΌλ κ²μ μλ―Ένλ€. λ°λΌμ μ μλ‘ νμλλ μλΌλ¦¬ λλλλΌλ μ€μκ° λμ¬ μ μλ€.
console.log(1 === 1.0); // true
console.log(3 / 2); // 1.5
μ«μ νμ μ μΆκ°μ μΌλ‘ μΈ κ°μ§ νΉλ³ν κ°λ ννν μ μλ€
console.log(10 / 0); // Infinity μμ 무νλ
console.log(10 / -0); // -Infinity μμ 무νλ
console.log(1 * 'String'); // NaN μ°μ μ°μ° λΆκ°
λ¬Έμμ΄ νμ
λ¬Έμμ΄ νμ μ ν μ€νΈ λ°μ΄ν°λ₯Ό λνλ΄λ λ° μ¬μ©νλ€. λ¬Έμμ΄μ λ°μ΄νλ‘ κ°μΈμ§ μμΌλ©΄ μλ°μ€ν¬λ¦½νΈ μμ§μ ν€μλλ μλ³μ κ°μ ν ν°μΌλ‘ μΈμνλ€.
ν νλ¦Ώ 리ν°λ΄
ES6λΆν° ν νλ¦Ώ 리ν°λ΄(template literal)μ΄λΌκ³ νλ μλ‘μ΄ λ¬Έμμ΄ νκΈ°λ²μ΄ λμ λμλ€. λ°±ν±(``)μ μ¬μ©ν΄ νννλ€.
- μΌλ° λ¬Έμμ΄κ³Ό λ¬λ¦¬ ν νλ¦Ώ 리ν°λ΄ λ΄μμλ μ΄μ€μΌμ΄ν μνμ€λ₯Ό μ¬μ©νμ§ μκ³ λ μ€λ°κΏμ΄ νμ©λλ©°, λͺ¨λ 곡백λ μλ κ·Έλλ‘ μ μ©λλ€.
- ν νλ¦Ώ 리ν°λ΄ λ΄μμλ ννμ μ½μ μ ν΅ν΄ κ°λ¨ν λ¬Έμμ΄μ μ½μ ν μ μλ€.
var name = 'Lee';
console.log(`My name is ${name}`); // My name is Lee
λΆλ¦¬μΈ νμ
λΆλ¦¬μΈ νμ μ κ°μ λ Όλ¦¬μ μ°Έ, κ±°μ§μ λνλ΄λ true, false λΏμ΄λ€.
undefined νμ
undefinedλ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ λ³μλ₯Ό μ΄κΈ°ν ν λ μ¬μ©νλ κ°μ΄λ€. κ°λ°μκ° μλμ μΌλ‘ λ³μμ ν λΉνλ€λ©΄ undefinedμ λ³Έλ μ·¨μ§μ μ΄κΈλ λΏλλ¬ νΌλμ μ€ μ μμΌλ―λ‘ κΆμ₯νμ§ μλλ€.
μ μΈ(declaration)κ³Ό μ μ(definition) μλ°μ€ν¬λ¦½νΈμ κ²½μ° λ³μλ₯Ό μ μΈνλ©΄ μ묡μ μΌλ‘ μ μκ° μ΄λ£¨μ΄μ§κΈ° λλ¬Έμ μ μΈκ³Ό μ μμ ꡬλΆμ΄ λͺ¨νΈνλ€. ECMAScript μ¬μμμλ λ³μλ ‘μ μΈνλ€’λΌκ³ νννκ³ , ν¨μλ ‘μ μνλ€’λΌκ³ νννλ€.
null νμ
νλ‘κ·Έλλ° μΈμ΄μμ nullμ λ³μμ κ°μ΄ μλ€λ κ²μ μλμ μΌλ‘ λͺ μν λ μ¬μ©νλ€. λ³μμ nullμ ν λΉνλ κ²μ λ³μκ° μ΄μ μ μ°Έμ‘°νλ κ°μ λ μ΄μ μ°Έμ‘°νμ§ μκ² λ€λ μλ―Έλ€. μ΄λ μ΄μ μ ν λΉλμ΄ μλ κ°μ λν μ°Έμ‘°λ₯Ό λͺ μμ μΌλ‘ μ κ±°νλ κ²μ μλ―Ένλ©°, μλ°μ€ν¬λ¦½νΈ μμ§μ λꡬλ μ°Έμ‘°νμ§ μμ λ©λͺ¨λ¦¬ 곡κ°μ λν΄ κ°λΉμ§ μ½λ μ μ μνν κ²μ΄λ€.
(κ·Έλ¬λ λ³μμ μ€μ½νλ₯Ό μ’κ² λ§λ€μ΄ λ³μ μ체λ₯Ό μ¬λΉ¨λ¦¬ μλ©Έμν€λ νΈμ΄ λ«λ€)
ν¨μκ° μ ν¨ν κ°μ λ°νν μ μλ κ²½μ° λͺ μμ μΌλ‘ nullμ λ°ννκΈ°λ νλ€.
<!DOCTYPE html>
<html>
<body>
<script>
var element = document.querySelector('.myClass');
console.log(element); // null
</script>
</body>
</html>
μ¬λ² νμ
μ¬λ² κ°μ λ€λ₯Έ κ°κ³Ό μ€λ³΅λμ§ μλ μ μΌλ¬΄μ΄ν κ°μ΄λ€. λ°λΌμ μ£Όλ‘ μ΄λ¦μ΄ μΆ©λν μνμ΄ μλ κ°μ²΄μ μ μΌν νλ‘νΌν° ν€λ₯Ό λ§λ€κΈ° μν΄ μ¬μ©νλ€.
μ¬λ² μ΄μΈμ μμ κ°μ 리ν°λ΄μ ν΅ν΄ μμ±νμ§λ§ μ¬λ²μ Symbol ν¨μλ₯Ό νΈμΆν΄ μμ±νλ€. μ΄λ μμ±λ μ¬λ² κ°μ μΈλΆμ λ ΈμΆλμ§ μμΌλ©°, λ€λ₯Έ κ°κ³Ό μ λ μ€λ³΅λμ§ μμ μ μΌλ¬΄μ΄ν κ°μ΄λ€.
// μ¬λ² κ° μμ±
var key = Symbol('key');
console.log(typeof key); // symbol
// κ°μ²΄ μμ±
var obj = {};
// μ΄λ¦μ΄ μΆ©λν μνμ΄ μλ μ μΌλ¬΄μ΄ν κ°μΈ μ¬λ²μ νλ‘νΌν° ν€λ‘ μ¬μ©νλ€.
obj[key] = 'value';
console.log(obj[key]); // value
κ°μ²΄ νμ
μ§κΈκΉμ§ μ΄ν΄λ³Έ 6κ°μ§ λ°μ΄ν° νμ μ΄μΈμ κ°μ λͺ¨λ κ°μ²΄ νμ μ΄λ€.
μλ°μ€ν¬λ¦½νΈλ κ°μ²΄ κΈ°λ°μ μΈμ΄μ΄λ©°, μλ°μ€ν¬λ¦½νΈλ₯Ό μ΄λ£¨κ³ μλ κ±°μ λͺ¨λ κ²μ κ°μ²΄λ€.
λ°μ΄ν° νμ μ νμμ±
- λ°μ΄ν° νμ
μ μν λ©λͺ¨λ¦¬ 곡κ°μ ν보μ μ°Έμ‘°
: κ°μ μ μ₯ν λ ν보ν΄μΌ νλ λ©λͺ¨λ¦¬ 곡κ°μ ν¬κΈ°λ₯Ό κ²°μ νκΈ° μν΄
: κ°μ μ°Έμ‘°ν λ ν λ²μ μ½μ΄ λ€μ¬μΌ ν λ©λͺ¨λ¦¬ 곡κ°μ ν¬κΈ°λ₯Ό κ²°μ νκΈ° μν΄ - λ°μ΄ν° νμ
μ μν κ°μ ν΄μ
: λ©λͺ¨λ¦¬μμ μ½μ΄ λ€μΈ 2μ§μλ₯Ό μ΄λ»κ² ν΄μν μ§ κ²°μ νκΈ° μν΄
λμ νμ΄ν
Cλ μλ° κ°μ μ μ νμ (static/strong type) μΈμ΄λ λ³μλ₯Ό μ μΈν λ λ³μμ ν λΉν μ μλ κ°μ μ’ λ₯, μ¦ λ°μ΄ν° νμ μ μ¬μ μ μ μΈν΄μΌ νλ€. μ΄λ₯Ό λͺ μμ νμ μ μΈμ΄λΌ νλ€.
μλ°μ€ν¬λ¦½νΈλ μ μ νμ μΈμ΄μ λ€λ₯΄κ² λ³μλ₯Ό μ μΈν λ νμ μ μ μΈνμ§ μλλ€. μλ°μ€ν¬λ¦½νΈμ λ³μλ μ μΈμ΄ μλ ν λΉμ μν΄ νμ μ΄ κ²°μ (νμ μΆλ‘ )λλ€. κ·Έλ¦¬κ³ μ¬ν λΉμ μν΄ λ³μμ νμ μ μΈμ λ μ§ λμ μΌλ‘ λ³ν μ μλ€. μ΄λ¬ν νΉμ§μ λμ νμ΄ν(dynamic typing)μ΄λΌ νλ©°, μλ°μ€ν¬λ¦½νΈλ₯Ό λμ νμ (dynamic/week type) μΈμ΄λΌ νλ€.
foo = {}; // κ°μ²΄
foo = []; // λ°°μ΄
foo = function() {}; // ν¨μ
λμ νμ μΈμ΄λ μ μ°μ±μ λμ§λ§ μ λ’°μ±μ λ¨μ΄μ§λ€. μμ μ μΈ νλ‘κ·Έλ¨μ λ§λ€κΈ° μν μ£Όμ μ¬νμ λ€μκ³Ό κ°λ€.
- λ³μλ κΌ νμν κ²½μ°μ νν΄ μ νμ μΌλ‘ μ¬μ©νλ€.
- λ³μμ μ ν¨ λ²μ(μ€μ½ν)λ μ΅λν μ’κ² λ§λ€μ΄ λ³μμ λΆμμ©μ μ΅μ ν΄μΌ νλ€.
- μ μ λ³μλ μ΅λν μ¬μ©νμ§ μλλ‘ νλ€.
- λ³μ보λ€λ μμλ₯Ό μ¬μ©ν΄ λ³κ²½μ μ΅μ νλ€.
- λ³μ μ΄λ¦μ λͺ©μ μ΄λ μλ―Έλ₯Ό νμ ν μ μλλ‘ λ€μ΄λ°νλ€.