π Chapter 3 : λ€μ΄ν°λΈ
Table of Contents
- κ°μ₯ λ§μ΄ μ¬μ©νλ λ€μ΄ν°λΈλ€
String
,Number
,Boolean
,Array
,Object
,Function
,RegExp
,Date
,Error
,Symbol
- λ€μ΄ν°λΈλ λ΄μ₯ ν¨μμ΄λ€.
var a = new String('abc');
typeof a; // object
a instanceof String; // true
Object.prototype.toString.call(a); // "[object String]"
new String('abc')
μμ±μμ κ²°κ³Όλ μμ κ°abc
λ₯Ό κ°μΌ κ°μ²΄ λ νΌμ΄λ€.typeof
μ°μ°μλ‘ μ΄ κ°μ²΄μ νμ μ νμΈν΄λ³΄λ©΄ μμ μ΄ κ°μΌ μμ κ°μ νμ μ΄ μλobject
μ νμ νμ μ κ°κΉλ€.
console.log(a); // StringΒ {"abc"}
new String('abc')
μabc
λ₯Ό κ°μΈλ λ¬Έμμ΄ λνΌλ₯Ό μμ±νλ©° μμ κ°abc
λ μλλ€.
π― λ΄λΆ [[Class]]
β
typeof
κ°object
μΈ κ°μλ[[Class]]
λΌλ λ΄λΆ νλ‘νΌν°κ° μΆκ°λ‘ λΆλλ€.- μ΄ νλ‘νΌν°λ μ§μ μ κ·Όν μ μκ³
Object.prototype.toString()
λΌλ λ©μλμ κ°μ λ£μ΄ νΈμΆν¨μΌλ‘μ¨ μ‘΄μ¬λ₯Ό μΏλ³Ό μ μλ€.
Object.prototype.toString.call([1, 2, 3]); // "[object Array]"
Object.prototype.toString.call(/regex-literal/i); // "[object RegExp]"
- λ΄λΆ
[[Class]]
κ°μ΄, λ°°μ΄μArray
μ κ·μμRegExp
μ΄λ€. - λλΆλΆ λ΄λΆ
[[Class]]
λ ν΄λΉ κ°κ³Ό κ΄λ ¨λ λ΄μ₯ λ€μ΄ν°λΈ μμ±μλ₯Ό κ°λ¦¬ν€μ§λ§, κ·Έλ μ§ μμ κ²½μ°λ μ‘΄μ¬νλ€.
Object.prototype.toString.call(null); // "[object Null]"
Object.prototype.toString.call(undefined); // "[object Undefined]"
- μμ κ°μ΄
Null()
,Undefined()
κ°μ λ€μ΄ν°λΈ μμ±μλ μμ§λ§ λ΄λΆ[[Class]]
κ°μNull
,Undefined
μ΄λ€. - νμ§λ§ κ·Έ λ°μ λ¬Έμμ΄, μ«μ, λΆλ¦¬μΈ κ°μ λ¨μ μμ κ°μ λ°μ±(Boxing) κ³Όμ μ κ±°μΉλ€.
Object.prototype.toString.call('abc'); // "[object String]"
Object.prototype.toString.call(42); // "[object Number]"
Object.prototype.toString.call(true); // "[object Boolean]"
- λ΄λΆ
[[Class]]
κ°μ΄ κ°κ°String
,Number
,Boolean
μΌλ‘ νμλ κ²μΌλ‘ 보μ λ¨μ μμ κ°μ ν΄λΉ κ°μ²΄ λ νΌλ‘ μλ λ°μ±λ¨μ μ μ μλ€.
π― λνΌ λ°μ±νκΈ°β
- μμ κ°μ νλ‘νΌν°λ λ©μλκ° μμΌλ―λ‘
.length
,.toString()
μΌλ‘ μ κ·Όνλ €λ©΄ μμ κ°μ κ°μ²΄ λνΌλ‘ κ°μΈμ€μΌ νλ€. - μλ°μ€ν¬λ¦½νΈλ μμ κ°μ μμμ λ°μ±(λν) νλ―λ‘ λ€μκ³Ό κ°μ μ½λκ° κ°λ₯νλ€.
var a = 'abc';
a.length; // 3
a.toUpperCase(); // 'ABC'
- λ°λΌμ 루ν 쑰건
i < a.length
μ²λΌ λΉλ²νκ² λ¬Έμμ΄ κ°μ νλ‘νΌν°/λ©μλλ₯Ό μ¬μ©ν΄μΌ νλ€λ©΄ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ μμμ μΌλ‘ κ°μ²΄λ₯Ό μμ±ν νμκ° μλλ‘ μ²μλΆν° κ°μ κ°μ²΄λ‘ κ°κ³ μλ κ²μ΄ μ΄μΉμ λ§λ κ²μ²λΌ 보μ΄μ§λ§, μ’μ μκ°μ΄ μλλ€. - κ°λ°μκ° μ§μ κ°μ²΄ ννλ‘(μ΅μ νλμ§ μμ λ°©ν₯μΌλ‘) μ μ΅μ ν(pre-Optimize)νλ©΄ νλ‘κ·Έλ¨μ΄ λ λλ €μ§ μ μλ€.
- μ§μ κ°μ²΄ ννλ‘ μ¨μΌ ν μ΄μ λ κ±°μ μκ³ , νμμ μμ§μ΄ μμμ μμμ μΌλ‘ λ°μ±νκ² νλ κ²μ΄ λ«λ€.