22.02.13 λ©΄μ Q & A
π μλ°μ€ν¬λ¦½νΈμ μλ£ν[data type]μ΄ νμν μ΄μ λ§ν΄λ³΄κΈ°
λͺ¨λ μΈμ΄κ° λ€ κ·Έλ μ§λ§, μνλ κ°μ λ©λͺ¨λ¦¬μ μ μ₯νκ³ μ½κ³ , μ¬μ©νκ² λλ€.
λ©λͺ¨λ¦¬μ κ°μ μ μ₯νκΈ° μν΄μ μ μ₯λλ λ°μ΄ν°μ ν¬κΈ°λ₯Ό μμμΌνλ€.
μ μ₯νκΈ° μν 곡κ°μ ν보ν΄μΌνκΈ° λλ¬Έμ΄λ€.
λ°μ΄ν°μ ν¬κΈ°λ₯Ό μ μ μκ² νλ μ§νκ° λ°μ΄ν° νμ μ΄λ€. -> κ·Έλμ λ°μ΄ν° νμ μ΄ μ€μνλ€.
π μλ°μ€ν¬λ¦½νΈμ μλ£ν[data type]μ λν΄ λ§ν΄λ³΄κΈ°
μλ°μ€ν¬λ¦½νΈμ λͺ¨λ κ°μ λ°μ΄ν° νμ μ κ°λλ€.
1. μ«μ νμ [number] | λͺ¨λ μλ₯Ό 64λΉνΈ μ€μ μ²λ¦¬.
2. λ¬Έμμ΄ νμ [string] | 16λΉνΈ μ λμ½λ λ¬Έμλ‘ νν.
3. λΆλ¦¬μΈ νμ [boolean] | True / False
4. undefined νμ [undefined] | μλ°μ€ν¬λ¦½νΈ μμ§μ΄ λ³μλ₯Ό μ΄κΈ°νν λ μ¬μ©νλ κ°.
5. null νμ [null] | λ³μμ κ°μ΄ μμμ μλμ μΌλ‘ λͺ μν λ μ¬μ©.
6. μ¬λ² νμ [symbol] | λ€λ₯Έ κ°κ³Ό μ€λ³΅λμ§ μλ μ μΌλ¬΄μ΄ν κ°μ μμ±ν λ μ¬μ©.
7. κ°μ²΄ νμ [object] | κ°μ²΄μ λ°°μ΄ λ± μμ νμ μ μ μΈν λλ¨Έμ§ νμ μ λΆμ ν΄λΉλ¨.
7κ°μ λ°μ΄ν° νμ μ μμ νμ κ³Ό κ°μ²΄ νμ μΌλ‘ λΆλ₯ν μ μλ€.
β μμ νμ : 1, 2, 3, 4, 5, 6 [primitive type]
β κ°μ²΄ νμ : 7 [object/reference type]
1. number νμ
μλ°μ€ν¬λ¦½νΈλ λͺ¨-λ μλ₯Ό 'μ€μ'λ‘ μ²λ¦¬νλ€. (μ μλ‘ νμλλ€ ν΄λ μ¬μ€μ μ€μλ₯Ό μλ―Έν¨. ex. 9 === 9.0)
μ μ, μ€μ, 2μ§μ, 8μ§μ, 16μ§μ 리ν°λ΄ λͺ¨λ λ°°μ λ°λ 64λΉνΈ λΆλμμμ νμμ 2μ§μλ‘ λ©λͺ¨λ¦¬μ μ μ₯λλ€.
• Double-precision_floating-point_format (FP64)
IEEE 754 νμ€μ λ°λ₯Έ λ°©μμΌλ‘ μ»΄ν¨ν°κ° 'μ€μ'λ₯Ό νννλ νλμ λ°©λ²μ΄λ€.
λ²μΈ
• Infinity : μμ 무νλ ex. 10 / 0
• -Infinity : μμ 무νλ ex. 10 / -0
• NaN : Not a Number ex. 10 / 'string'
2. string νμ
16λΉνΈ μ λμ½λ λ¬Έμ(UTF-16)μ μ§ν©μΌλ‘ μ μΈκ³ λλΆλΆμ λ¬Έμλ₯Ό ννν μ μλ€.
λ²μΈ `template literal`
• multi-line string : μ΄μ€μΌμ΄ν μνμ€λ₯Ό μ¬μ©νμ§ μκ³ λ κ°ν(μ€λ°κΏ) κ°λ₯
• expression interpolation : `${string}` -> ${ } ννμμ ν΅ν΄ λ¬Έμμ΄ μ½μ κ°λ₯
• tagged template : λ¬Έμμ΄, ν¨μλ‘ νμ± κ°λ₯
• μ΄μ€μΌμ΄ν μνμ€μ κ°ν λ¬Έμ λΉκ΅ : Line Feed(LF : βn) μ Carriage Return(CR : βr)
λ κ°ν λ¬Έμ λͺ¨λ κ³Όκ±° νμκΈ°μμ 컀μλ₯Ό μ μ΄νλ λ°©μμμ λΉλ‘―λ.
βn : 컀μλ₯Ό μ μ§ν μνμμ μ’ μ΄λ₯Ό ν μ€ μ¬λ¦Ό
βr : μ’ μ΄λ₯Ό μμ§μ΄μ§ μμ μνμμ 컀μλ₯Ό 맨 μμ€λ‘ μ΄λμν΄
μ¦, νμκΈ°μμλ μ€λ°κΏμ μν΄ λΌμΈ νΌλμ μΊλ¦¬μ§ 리ν΄μ λͺ¨λ μ¬μ©νμ. (CRLF : βrβn)
μλ°μ€ν¬λ¦½νΈμμλ βrμ βn λͺ¨λ κ°νμ μλ―Ένμ§λ§, μΌλ°μ μΌλ‘ βnλ₯Ό μ¬μ©ν΄ κ°ννλ€.
• tagged template μ¬μ©λ²
const name = 'lee';
const age = '25';
function myTag(strings, nameExp, ageExp) {
const str0 = strings[0];
const str1 = strings[1];
let ageStr;
if(ageExp > 99){
ageStr = 'centenarian';
} else {
ageStr = 'youngster';
}
return str0 + nameExp + str1 + ageStr;
// ν¨μ λ΄μμλ template literalμ λ°νν μ μλ€ .. μ€
}
tagged template λ μ€μ μ½λμμλ νλ²λ μ¬μ©ν΄λ³Έμ μ΄ μμ΄ μ μΌ μμνλ€. νμ§λ§ κ·Έλ§νΌ μ κΈ°ν¨λ λ°° !
3. boolean νμ
True | False
4. undefined νμ
κ°λ°μκ° μλμ μΌλ‘ ν λΉνκΈ° μν κ°μ΄ μλλΌ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ λ³μλ₯Ό μ΄κΈ°νν λ μ¬μ©νλ κ°μ΄λ€.
μλ°μ€ν¬λ¦½νΈμ κ²½μ°, λ³μλ₯Ό μ μΈνλ©΄ μ묡μ μΌλ‘ μ μκ° μ΄λ€μ§κΈ° λλ¬Έμ μ μΈκ³Ό μ μμ κ²½κ³κ° λͺ¨νΈνλ€.
• μ μΈ : μ»΄νμΌλ¬μκ² λ¨μν μλ³μμ μ‘΄μ¬λ§ μλ¦Ό
• μ μ : μ»΄νμΌλ¬κ° μ€μ λ‘ λ³μλ₯Ό μμ±νκ³ λ©λͺ¨λ¦¬ μ£Όμμ μ°κ²°ν¨
μ°Έκ³ > λ³μμ κ°μ΄ μμμ λͺ μνκ³ μΆμ λ nullμ ν λΉνλ κ² μ’λ€.
5. null νμ
λ³μμ κ°μ΄ μλ€λ κ²μ μλμ μΌλ‘ λͺ μν λ μ¬μ©νλ€. (μλμ λΆμ¬ intentional absence)
λ³μμ nullμ ν λΉνλ€ = λ³μκ° μ΄μ μ μ°Έμ‘°νλ κ°μ λ μ΄μ μ°Έμ‘°νμ§ μκ² λ€
= μλ°μ€ν¬λ¦½νΈ μμ§μ μ΄ κ° (λꡬλ μ°Έμ‘°νμ§ μλ λ©λͺ¨λ¦¬ 곡κ°μ΄κΈ° λλ¬Έμ) μ λν΄ κ°λΉμ§ μ½λ μ μ μννλ€
λ³μμ null κ°μ ν λΉνλ©΄ μ΄μ κ°μ λ μ΄μ μ°Έμ‘°νμ§ μλλ€λ λ»μ΄μ΄μ
μΉ΄μΉ΄μ€ Map API μΈ λ μμ±λ λ§μ»€λ₯Ό μ§μΈ λ setMap(null) λ©μλλ₯Ό μΌλκ±°μꡬλ ... μ !!!
νμμλ λ©λͺ¨λ¦¬λ κ°λΉμ§ 컬λ ν°λ‘ λ°λ‘λ°λ‘ μμ ... ππ»ππ»
6. symbol νμ
ES6μ μΆκ°λ 7λ²μ§Έ νμ . λ€λ₯Έ κ°κ³Ό μ€λ³΅λμ§ μλ μ μΌλ¬΄μ΄ν κ°μ΄λ€.
μ£Όλ‘ 'κ°μ²΄μ μ μΌν νλ‘νΌν° ν€'λ₯Ό λ§λ€κΈ° μν΄ μ¬μ©λλ€.
μ¬λ²μ ν¨μλ₯Ό νΈμΆν΄ μμ±νλ€λ νΉμ§μ΄ μλ€. (1,2,3,4,5λ ν΄λΉ λ°μ΄ν° νμ μ 리ν°λ΄μ ν΅ν΄ μμ±ν¨)
μμ±λ μ¬λ²κ°μ μΈλΆμ λ ΈμΆλμ§ μμΌλ©°, λ€λ₯Έ κ°κ³Όλ μ λ! μ€λ³΅λμ§ μλλ€.
7. object νμ
1,2,3,4,5,6 (μμ νμ ) μ λ°μ΄ν° νμ μ μ μΈν λͺ¨λ κ²μ κ°μ²΄ νμ μ΄λ€ π
π κ³Όκ±° νμ΅ λ΄μ© 볡μ΅
νλ‘μ νΈκ° λλ λ€μ νμ΅ν λ΄μ©μ 볡μ΅νλκΉ λ 보μ΄λ κ² λ€λ₯΄κ³ .. λ무 μ κΈ°νλ€
2021.07.20 - [Front-end/JS] - μλ°μ€ν¬λ¦½νΈ λ°μ΄ν° νμ Data Type