νλ‘κ·Έλλ°μμ λ°μ΄ν° νμ μ λ§€μ° μ€μν μμμ λλ€. κ·Έλ°λ°, μμΌκΉμ? μ΄μ°¨νΌ λ°μ΄ν°λ μ»΄ν¨ν° λ©λͺ¨λ¦¬μ 2μ§μλ‘ μ μ₯λ ν λ°μ, μ νμ μ ꡬλΆν΄μ μ μνμκΉμ?
κ°μ μ’ λ₯λ‘μ λ©λͺ¨λ¦¬μ 곡κ°μ ν¨μ¨μ μΌλ‘ μ¬μ©νκΈ° μν΄ νμν©λλ€.
λ°μ΄ν° νμ μ ν¬κ² μμ(Primitive) νμ κ³Ό κ°μ²΄(λλ μ°Έμ‘°, Object/Reference) νμ μΌλ‘ λΆλ₯ν©λλ€.
Number, String, Boolean, undefined, null, Symbolμ μμ νμμ λλ€.κ·Έ μΈλ κ°μ²΄ νμμ λλ€.- μμ νμ μ λ³κ²½ λΆκ°λ₯ν κ°(Immutable Value)μ λλ€.
- μ°Έμ‘° νμ μ λ³κ²½ κ°λ₯ν κ°(Mutable Value)μ λλ€.
μ κΉ, λ΄μ©μ΄ κΈΈμ΄μ§ μ λ°μ μλ μμ κ°κ³Ό κ°μ²΄μ λΉκ΅ νλͺ©μ λλ€. ꡬλΆμ μΌλ‘ λΆλ¦¬νκ³ κ°κΉμ?
λ³κ²½μ΄ λΆκ°λ₯νλ€, κ°λ₯νλ€? μ΄μνμ§ μλμ? μ ν¬λ λ³μμ κ°μ μμ£Ό λ°κΏ¨μ΅λλ€. μλμ²λΌμ.
// constλ μμλ₯Ό μλ―ΈνκΈ°μ μ¬ν λΉμ΄ λΆκ°λ₯ν©λλ€!
let x = 5;
x = 10;
console.log(x); // 10λΆλͺ
xμ κ°μ λ³κ²½λμλλ°... λ체 λκ° λΆκ°λ₯μ΄κ³ κ°λ₯μΌκΉμ?
μ°λ¦¬λ λ¨Όμ λ³μμ μλ―Έμ λν΄ μκ°ν΄λ΄μΌ ν©λλ€. λ³μλ λ©λͺ¨λ¦¬ κ³΅κ° μ체μ΄μ λ©λͺ¨λ¦¬ 곡κ°μ μλ³νκΈ° μν΄ λΆμΈ μ΄λ¦μ λλ€. κ°μ μ΄λ¦μ μ μ₯λ μ€μ²΄(λ°μ΄ν°)λ‘μ ννμμ΄ νκ°λμ΄ μμ±λ κ²°κ³Όμ λλ€.
μ¦ λ³κ²½ λΆκ°λ₯νλ€, λ³κ²½ κ°λ₯νλ€λΌλ 건 λ³μ μμ²΄κ° μλλΌ κ°μ λν λ΄μ©μΈ κ²μ΄μ£ .
κΈλ‘λ§ λ³΄λ©΄ μ΄ν΄νκΈ° νλ€κ±°μμ. κ·Έλ¦Όκ³Ό ν¨κ» λ΄ μλ€.
κΈ°μ‘΄μ ν λΉλ κ°μ μ§μ λ³κ²½νλ κ²μ΄ μλλΌ μλ‘μ΄ μμ κ°μ μμ±ν©λλ€.
μ¬κΈ° λ³μ scoreλ₯Ό μ μΈνκ³ ν λΉν μ½λκ° μμ΅λλ€.
let score = 80;
score = 100;
console.log(score); // 100;
let copy = score;μ°λ¦¬λ μ½κ² μΆλ‘ ν μ μμ΅λλ€. 맨 μ²μ λ³μ scoreκ° μ μΈλ©λλ€. λμμ μ΅μ΄ κ° 80μ΄ ν λΉλλ©° μ΄κΈ°ν λ©λλ€. κ·Έ ν λ³μ scoreμ 100μ μ¬ν λΉνμ£ . μ°λ¦¬λ μ΄λ₯Ό ν΅ν΄ κ°μ΄ λ³κ²½λμλ€κ³ μ΄ν΄ν©λλ€.
κ±°κΈ°μ λμ΄ μλμ£ ? λ³μ copyλ₯Ό μ μΈνλ©΄μ, scoreμ κ°μΌλ‘ μ΄κΈ°νν©λλ€. μ΄ λ€μ λ¨κ³λ‘ λ³μ copyμ 90μ μ¬ν λΉν©λλ€. λΉκ΅νλ©΄ μ΄λ»κ² λ κΉμ? λΉμ°ν score = 100, copy = 90μ΄κ² μ£ ?
μ΄μ μΈκΈν μΌλ ¨μ μ μ°¨κ° λ΄λΆμμ μ΄λ»κ² λμλλμ§ κ·Έλ¦ΌμΌλ‘ λ³ΌκΉμ?
μ΄μ²λΌ μμ κ°μ μ¬ν λΉμ΄ λλ©΄ λ©λͺ¨λ¦¬ μ£Όμκ° λ³κ²½μ΄ λ©λλ€. μ¦, κ°μ λν λ³κ²½μ΄ κΈ°μ‘΄ λ©λͺ¨λ¦¬ μ£Όμκ° κ°μ§ λ°μ΄ν° μ체λ₯Ό λ³κ²½μν€λ κ² μλλΌλ κ±°μ£ .
μ΄ κ·Έλ¦Όμ λ³κ²½μ΄ λΆκ°λ₯νλ€μλ μ‘°κΈ λ€λ₯Έ μλ―Έμ μμ μ΄μ§λ§, μλ μ€λͺ
ν λ³κ²½μ΄ κ°λ₯ν κ°μ λν λ΄μ©μ΄ μ°κ΄λλ―λ‘ ν λ² λ³΄κ³ λ§ κ°μλ€. μλ‘μ΄ λ³μμ μ΄ κ°μ ν λΉνλ©΄ μ΄λ€ μΌμ΄ μΌμ΄λ κΉμ? κ° μ체λ₯Ό 볡μ¬ν΄μ, μλ‘μ΄ λ©λͺ¨λ¦¬μ ν λΉν λΏμ
λλ€. μ¦, λ©λͺ¨λ¦¬ μ£Όμκ° λ³κ²½λμ΄ κ°κ° λ€λ₯Έ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κ°λ¦¬ν€λ―λ‘, κΉμ 볡μ¬λΌκ³ ν©λλ€.
μ΄λ₯Ό κ°μ μν μ λ¬(Pass by Value) λλ κ°μ μν νΈμΆ(Call by Value) μ΄λΌκ³ ν©λλ€.
κ²°κ΅, λ³μ copyλ λ³μ scoreμ κ°μ 볡μ¬ν κ²μΌ λΏμ΄λ©°, μλ‘κ° μ°κ΄λμ§ μκ³ μ¬ν λΉμ ν λλ§λ€ λ©λͺ¨λ¦¬ μ£Όμκ° λ³κ²½λλ ννμΈ κ²μ΄μ£ .
κ·ΈλΌ μ΄μ , λ³κ²½ κ°λ₯ν κ°μΈ κ°μ²΄λ₯Ό λ³Ό μ°¨λ‘μ λλ€.
κ°μ²΄λ μ°Έμ‘° κ°μ μ κ·Όνλ ννλ‘, κΈ°μ‘΄μ ν λΉλ μ΄ μ°Έμ‘° κ°μ μ§μ λ³κ²½ν μ μμ΅λλ€.
μλ°μ€ν¬λ¦½νΈμμμ κ°μ²΄λ νλ‘νΌν°(Property)μ κ°μκ° νμ μ μ΄μ§ μμΌλ©°, λμ μΌλ‘ μΆκ°/μμ λ μ μμ΅λλ€. λν νλ‘νΌν°μ κ°λ μ μ½μ΄ μμ΅λλ€.
κ·Έλ κΈ°μ μμ κ°κ³Ό κ°μ΄ λ©λͺ¨λ¦¬ 곡κ°μ ν¬κΈ°λ₯Ό λͺ νν μ μν μ μμΌλ©°, μ΄ λ³΅ν©μ μΈ μλ£κ΅¬μ‘°μΈ κ°μ²΄λ μμ κ°κ³Ό λ€λ₯Έ λ°©μμΌλ‘ λμνλλ‘ μ€κ³ λμμ΅λλ€.
μ, μ΄μ μμ λ₯Ό λ³ΌκΉμ? μ¬κΈ° κ°μ²΄λ₯Ό μ μΈνκ³ , λ΄λΆ νλ‘νΌν°λ₯Ό ν λΉν μ½λκ° μμ΅λλ€.
const score = {
math: '100',
};
const copy = score;
copy.history = '80';
score.sociology = '99';μμ κ°μ ν λΉν λ³μλ μμ κ° μ체λ₯Ό κ°μΌλ‘ κ°μ΅λλ€. κ·Έλ¬λ κ°μ²΄μ κ²½μ°, ν λΉν λ³μκ° κΈ°μ΅νλ λ©λͺ¨λ¦¬ μ£ΌμμΈ μ°Έμ‘° κ°(Reference Value)μ μ κ·Όν μ μμ΅λλ€. μ°Έμ‘° κ°μ κ°μ²΄κ° μ μ₯λ λ©λͺ¨λ¦¬ 곡κ°μ μ£Όμμ λλ€.
κ·Έλ κΈ°μ κ°μ²΄λ μ¬ν λΉ μμ΄ κ°μ²΄λ₯Ό μ§μ λ³κ²½ν μ μμΌλ©° λμ μΌλ‘ νλ‘νΌν°μ κ°μ κ°±μ ν μ μλ κ²μ΄μ£ . μ΄μ κ·Έλ¦ΌμΌλ‘ κ°μ²΄μ μ μΈκ³Ό ν λΉ, νλ‘νΌν° κ°±μ μ λν λ΄λΆ λμμ λ³ΌκΉμ?
μ μΈκ³Ό μ΄κΈ°νλ₯Ό κ±°μΉ λ³μ scoreλ κ°μ²΄ { math: '100' }μ κ°λ¦¬ν€κ³ (μ°Έμ‘°νκ³ ) μμ΅λλ€. μ΄λ₯Ό λ³μ copyμ ν λΉνλ©΄ κ° μ체λ₯Ό ν λΉνλ κ²μ΄ μλ, scoreκ° κ°λ¦¬ν€λ κ°μ²΄μ μ£Όμλ₯Ό ν λΉνκ² λ©λλ€. λ§μΉ 볡μ¬ν κ² κ°μ ν¨κ³Όκ° μΌμ΄λ©λλ€.
μ΄λ₯Ό μ°Έμ‘°μ μν μ λ¬(Pass by Referecne) λλ μ°Έμ‘°μ μν νΈμΆ(Call by Reference) μ΄λΌκ³ λΆλ¦ λλ€.
κ°μ²΄λ λ³κ²½ κ°λ₯ν κ°μΌλ‘, λ©λͺ¨λ¦¬μ μ μ₯λ κ°μ²΄λ₯Ό μμ ν μ μμ΅λλ€. μ΄μ λ? μμμ μΈκΈνλλ‘ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κ°λ¦¬ν€κ³ μκΈ° λλ¬Έμ΄μ£ . μ΄λ κ°μ²΄λ₯Ό μ μ₯ν λ³μμ μ¬ν λΉμ νμ§ μμΌλ―λ‘ λ³μκ° μ°Έμ‘°νλ μ£Όμ(κ°)μ λ³νμ§ μκ³ λ¨μμκ² λ©λλ€.
μ΄λ κ² μ€κ³λ μ΄μ λ κ²°κ΅ κ°μ²΄λ₯Ό μμ±νκ³ κ΄λ¦¬νλ λ°©μμ λ§€μ° λΉμ©μ΄ λ§μ΄ λ€κΈ° λλ¬Έμ λλ€. μμ κ°μ²λΌ μ μ΄νλ€λ©΄, λ©λͺ¨λ¦¬κ° λλΉλκ³ μ±λ₯μ΄ μ νλμ£ . νλ‘κ·Έλλ°μ λΉμ°ν ν¨μ¨μ μ΄μ΄μΌ νλ©°, μ΄λ₯Ό κ°μ νκΈ° μν΄ λ³κ²½μ΄ κ°λ₯ν κ°μΌλ‘ μ€κ³κ° λκ³ , λ©λͺ¨λ¦¬μ μ£Όμλ₯Ό μ°Έμ‘°νλ ννκ° λ κ²μ λλ€.
λ¬Όλ‘ , μμ κ·Έλ¦Όμ²λΌ λ¬Έμ μ μ΄ μ‘΄μ¬ν©λλ€. μ΄μ§Έμ λ³μ scoreμ λ³μ copyμ κ°κ° λμ μΌλ‘ ν λΉν νλ‘νΌν° history, sociologyκ° μ‘΄μ¬ν κΉμ? μ΄λ ꡬ쑰μ μΈ λ¨μ μΌλ‘, μ¬λ¬ μλ³μκ° νλμ κ°μ²΄λ₯Ό 곡μ νκΈ° λλ¬Έμ
λλ€. λ©λͺ¨λ¦¬ μ£Όμκ° λ³κ²½λμ§ μκ³ λμΌν μ£Όμλ₯Ό λ°λΌλ³΄λ―λ‘ μμ λ³΅μ¬ λΌκ³ νλ©°, μ΄λ¬ν λ¬Έμ μ μ ν΄κ²°νκΈ° μν΄μλ κ°μ²΄ λ΄λΆμ λͺ¨λ κ°μ²΄κΉμ§ 볡μ¬νλ κΉμ 볡μ¬λ₯Ό κ±°μ³μΌ ν©λλ€.
μ¬μ€ μ΄λ κ² κ΅¬λΆνμ¬λ, κ°μ μν μ λ¬κ³Ό μ°Έμ‘°μ μν μ λ¬μ μλ³μκ° κΈ°μ΅νλ λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯λμ΄ μλ κ°μ 볡μ¬νμ¬ μ λ¬νλ λ©΄μμ λμΌν©λλ€. μ΄λ κ² λ³΄λ©΄ κ²°κ΅ μλ°μ€ν¬λ¦½νΈμμλ κ°μ μν μ λ¬λ§ μ‘΄μ¬νλ€κ³ ν μ μμ£ . κ°λ 곡μ μ μν μ λ¬μ΄λΌκ³ λ ν©λλ€λ§, μ΄λ μͺ½μ΄λ μκ΄ μμ΅λλ€.
νμ§λ§ μ ν¬λ μμ κ°κ³Ό κ°μ²΄λ₯Ό ꡬλΆνκΈ° μν΄ κ°μ μν μ λ¬κ³Ό μ°Έμ‘°μ μν μ λ¬λ‘ ꡬλ³ν©λλ€.
μ¬κΈ°μ κΈ°μ΅ν΄μΌ ν κ²μ, λ€λ₯Έ νλ‘κ·Έλλ° μΈμ΄λ ν¬μΈν°(Pointer)μ μ‘΄μ¬λ‘ μΈν΄ μ λ¬ λ°©μμ΄ λͺ
νν ꡬλΆλλ©°, μλ°μ€ν¬λ¦½νΈκ° λ§νλ μ λ¬μ μλ―Έμλ μλ²½νκ² μΌμΉνμ§ μμμ κΈ°μ΅ν΄μ£ΌμΈμ.
μ¬κΈ°κΉμ§ μμ κ°κ³Ό κ°μ²΄μ λν μ€λͺ
μ΄μμ΅λλ€. λ€μ λμκ°μ, λ°μ΄ν° νμ
μ΄ κ°μ§λ νΉμ§μ μ΄ν΄λ΄
λλ€. μ«μ 1κ³Ό λ¬Έμμ΄ '1'μ λΉμ·ν΄ 보μ΄μ§λ§ λ€λ¦
λλ€. μ©λ(μ°μ°, νλ©΄μ μΆλ ₯ λ±) λΏλ§ μλλΌ κ° νμ
λ³ ν보ν λ©λͺ¨λ¦¬ 곡κ°μ ν¬κΈ°μ 2μ§μ κ°λ λ€λ₯΄κ³ μ¬μ§μ΄ ν΄μμ‘°μ°¨ ν립λλ€.
λ§μ½ κ°λ€λ©΄ μ΄λ»κ² λ κΉμ? νμ μ μλ―Έκ° μμ΄μ§κ³ μ°μ°, μΆλ ₯ λ± νλ‘κ·Έλλ° μΈμ΄λ‘μ¨μ κΈ°λ₯μ μ±μ€ν μνν μ μμκΉμ?
κ°λ°μκ° λΆλ¬μ€λ €λ κ°μ΄ μκ°κ³Ό λ€λ₯΄κ² μ μ΄λλ€λ©΄ κΈ°μ΄μ μΈ μ νλ μΌμ΄μ μ μμ±ν μλ μμ κ²μ λλ€. μλ₯Ό λ€μ΄ 1 + 3 μ°μ°μ μ§ννλλ° 13μ΄ λ μλ μκ³ , 4κ° λ μλ μμ΅λλ€. μ΄λ° κΈ°μ΄μ μΈ μ°μ°μ‘°μ°¨ νΌλμ΄ μ¬ μ μμ΄μ.
μ°μ , μλ°μ€ν¬λ¦½νΈ μμ§μ λ°μ΄ν° νμ , μ¦ κ°μ μ’ λ₯μ λ°λΌ μ ν΄μ§ λ©λͺ¨λ¦¬ 곡κ°μ ν보ν©λλ€. κ·Έ λ§μ λ³μμ ν λΉλλ λ°μ΄ν° νμ μ λ°λΌ λ©λͺ¨λ¦¬ 곡κ°μ΄ μμ΄νλ€λ κ²μ λλ€.
μ λ°μ΄ν° νμ λ³λ‘ λ©λͺ¨λ¦¬ 곡κ°μ΄ λ€λ₯΄κ² ν λΉλ κΉμ? μΈκΈνλ―, μ»΄ν¨ν°μ λ©λͺ¨λ¦¬μλ λͺ¨λ λ°μ΄ν°κ° 2μ§μλ‘ μ μ₯λ©λλ€. μλλ₯Ό λ³ΌκΉμ?
// μ€μ λ©λͺ¨λ¦¬μ μ μ₯λλ κ° : 0100 0001
// μ«μνμΌλ‘λ 65, λ¬Έμμ΄λ‘λ 'A'
let a = 'A';
// μλμ κ²°κ³Όλ?
console.log(a);
let b = a + 15;
// μλμ κ²°κ³Όλ?
console.log(b);λ¬Έμμ΄ 'A'λ charνμΌλ‘ 0100 0001 λΉνΈ(λ©λͺ¨λ¦¬μ μ μ₯λλ 2μ§μλ λΉνΈλ₯Ό λμ΄ν κ²κ³Ό κ°μμ!)μ
λλ€. μ΄λ μ«μλ‘ ν΄μνλ©΄ 65μ
λλ€. κ·Έλ λ€λ©΄ console.log(b)μ κ²°κ³Όλ 80μΌκΉμ?
- μμμΉ λͺ»ν
A15λΌλ κ°μ΄ λμ€κ² λ©λλ€. μ΄λ μλ°μ€ν¬λ¦½νΈμ λμ νμ μΈμ΄μ νΉμ± λλ¬ΈμΈλ°μ, μ΄ λΆλΆμ λμ΄κ°λλ‘ νκ² μ΅λλ€(νμ ν©λλ€).
μλ°μ€ν¬λ¦½νΈ μμ§μ λ©λͺ¨λ¦¬μμ κ°μ μ½μ΄μ¬ λ λ°μ΄ν° νμ μ μΆλ‘ (Type Inference)νμ¬ ννν©λλ€. μ¦, μ«μ 65κ° μλλΌ λ¬Έμμ΄ 'A'λ‘ μ΄ν΄νλ κ²μ λλ€. μ¬κΈ°μ λ°μ΄ν° νμ μ νμμ±μ μκ°ν΄λ³Ό μ μμ΅λλ€.
- λ©λͺ¨λ¦¬ 곡κ°μ ν¬κΈ°λ₯Ό κ²°μ : λ°μ΄ν° νμ μ λ°λΌ κ°μ μ μ₯ν λ νμν 곡κ°μ΄ λ¬λΌμ§λ€.
- 2μ§μλ₯Ό ν΄μνλ λ°©λ²μ κ²°μ : λ°μ΄ν° νμ μ λ°λΌ λ©λͺ¨λ¦¬μμ μ½μ΄μ¨ κ°μ ν΄μνλ λ°©λ²μ΄ λ¬λΌμ§λ€.
μμν λ¨μ΄κ° λμμ΅λλ€. κ·Έ μ μ, ν λ² μκ°ν΄λ΄
μλ€. μλ°μ€ν¬λ¦½νΈμμ λ³μλ₯Ό μ μΈν λ, μ°λ¦¬λ νμ
μ μ ν΄μ€κΉμ?
C, Java λ±μ int a = 0 ννλ‘ λ³μλ₯Ό μ μΈν©λλ€. μ¦ μ΄κΈ°ν-ν λΉμ ν λ³μμ νμ
μ μ§μ ν΄μ£Όλ ννμ£ . κ·Έλ°λ° JavaScript, Pythonμ μ΄λ€κ°μ? νμ
μ μ§μ νμ§ μμ΅λλ€.
μ°λ¦¬λ Cμ Javaμ²λΌ λ³μμ ν λΉν μ μλ νμ
μ μ§μ ν΄μΌλ§ νλ μΈμ΄λ₯Ό μ μ νμ
μΈμ΄(static/strong type) λΌκ³ λ¬Άμ΄ μ§μΉνλ©°, μ΄λ₯Ό λͺ
μμ νμ
μ μΈ(explicit type declaration)μ΄λΌκ³ ν©λλ€.
λ°λλ‘ JavaScriptμ Pythonμ²λΌ λ³μλ₯Ό μ μΈν λ νμ
μ μ μΈνμ§ μλ μΈμ΄λ₯Ό λμ νμ
μΈμ΄(dynamic/weak type) λΌκ³ λ¬Άμ΄ μ§μΉνλ©°, μ΄λ₯Ό μμμ νμ
μ μΈ(implicit type declaration)μ΄λΌκ³ λΆλ¦
λλ€.
κ·ΈλΌ νΉμ§μ μ΄ν΄λ³ΌκΉμ?
-
μ μ νμ μΈμ΄
- λ³μμ νμ
μ λ³κ²½ν μ μμ΄
μ μΈν νμ μ λ§λ κ°λ§ ν λΉν μ μμ΅λλ€.// μλ° int a = 0; a = 'A'; // Compile Error
- λλΆλΆμ μ μ νμ
μΈμ΄λ
μ»΄νμΌ μΈμ΄(Compile Language)λ‘μ¨ μ»΄νμΌ μμ μνμ μ 체ν¬ν©λλ€.- νμ 체ν¬(Type Check) : μ μΈν λ°μ΄ν° νμ μ λ§λ κ°μ ν λΉνλμ§ κ²μ¬
- μμ μ μ°¨λ‘ νμ μ μΌκ΄μ±μ κ°μ νμ¬ μμ μ μΈ μ½λλ₯Ό ꡬννκ³ , λ°νμ(μ€ν)μ λ°μνλ μλ¬λ₯Ό μ€μ λλ€.
- λ³μμ νμ
μ λ³κ²½ν μ μμ΄
-
λμ νμ μΈμ΄
- 미리 μ μΈν λ°μ΄ν° νμ
μ κ°μ΄ μλλΌ, μ΄λ€ νμ
μ΄λΌλ μμ λ‘κ² ν λΉν μ μμ΅λλ€.
// μλ°μ€ν¬λ¦½νΈ let a = 0; a = 'A'; // Not Problem
# νμ΄μ¬ a = 0 a = 'A'
- μμ μ μ°¨λ‘,
μ μΈμ΄ μλ ν λΉμ μν΄ νμ μ΄ κ²°μ (νμ μΆλ‘ )λλ©° νμ μ λ³νμ λ§€μ° μμ λ‘μ΅λλ€. - λ¨, νμ
μ μΌκ΄μ±μ κ°μ νμ§ μμΌλ―λ‘ μ½λ ꡬνκ³Ό λ°νμ κ° μλ¬κ° λ°μν μ μμ΅λλ€.
- μ΄λ° μ¬λ¬ λ¬Έμ μ μ ν΄κ²°νκ³ μ μλ°μ€ν¬λ¦½νΈ μ§μμμλ νμ μ€ν¬λ¦½νΈ(TypeScript)λΌλ μλ‘μ΄ μΈμ΄(μλ°μ€ν¬λ¦½νΈ κΈ°λ°)κ° νμνμ΅λλ€.
- μ΄μ λ³κ°λ‘, μλ°μ€ν¬λ¦½νΈλ κ°λ°μμ μλμ μκ΄ μμ΄ μμ§μ μν΄ μ묡μ μΌλ‘ νμ
μ΄ μλ λ³ν λκΈ°λ ν©λλ€. μλλ μμμ μΈκΈνλ μ½λμ
λλ€.
let a = 'A'; let b = a + 15; console.log(b);
- μμ§μ aμ μ°μ°νλ
15λ₯Ό λ¬Έμμ΄λ‘ λ³ννμ¬λ¬Έμμ΄ λ§μ μ μνν©λλ€. μ΄μ²λΌ λ¬Έμμ΄ νμ λ³μλΌκ³ μμΈ‘νμΌλ μ€μ μ«μ νμ μ΄μλ€ λ λ¬Έμ κ° λ°μν©λλ€.
- μμ§μ aμ μ°μ°νλ
- μ¦ λμ νμ μΈμ΄λ μ μ°μ±(flexibility)μ λμ§λ§ μ λ’°μ±(reliability)μ λ¨μ΄μ§λλ€.
- 미리 μ μΈν λ°μ΄ν° νμ
μ κ°μ΄ μλλΌ, μ΄λ€ νμ
μ΄λΌλ μμ λ‘κ² ν λΉν μ μμ΅λλ€.
μ΄λλ‘ λλ΄κΈ°μλ μ‘°κΈ μμ¬μ°λ, νμ λ³λ‘ κ°λ΅νκ² μ§κ³ λμ΄κ°λ³΄μ£ .
μλ°μ€ν¬λ¦½νΈλ int, long, float, double λ± λ€μν μ«μ νμ μ΄
μ‘΄μ¬νμ§ μμ΅λλ€.
ECMAScript μ¬μμμλ μ«μ νμ μ κ°μ λ°°μ λ°λ 64λΉνΈ λΆλμμμ νμμ λ°λΌ μ€μλ‘ μ²λ¦¬ν©λλ€.
- μμ μ½λ
// λͺ¨λ μ«μ νμ const int = 1; const db = 1.12; const ng = -1; // νκΈ°λ²μ λ€λ₯΄μ§λ§ λͺ¨λ κ°μ κ° const binary = 0b01000001; // 2μ§μ const octal = 0o101; // 8μ§μ const hex = 0x41; // 16μ§μ console.log(binary); // 65 console.log(octal); // 65 console.log(hex); // 65 // μ«μ νμ μ λͺ¨λ μ€μλ‘ μ²λ¦¬ console.log(1 === 1.0); // true // νΉλ³ν μ«μ κ°λ μ‘΄μ¬ const INF = Infinity; // μμ 무νλ console.log(-INF); // μμ 무νλ console.log(INF * 'a') // NaN(not a number, μ°μ° λΆκ°)
0κ° μ΄μ 16λΉνΈ μ λμ½λ λ¬Έμ(UTF-16)μ μ§ν©μΌλ‘ μ μΈκ³ λλΆλΆμ λ¬Έμλ₯Ό ννν μ μμ΅λλ€.
μμ λ°μ΄ν('), ν° λ°μ΄ν("), λ°±ν±(`)μ ν΅ν΄ νκΈ°ν μ μμ΅λλ€.
- λ°±ν±μ ν΅ν΄ ν νλ¦Ώ 리ν°λ΄μ μ¬μ©ν μ μμΌλ©°, μμ λ‘κ² JavaScriptμ λ³μλ₯Ό κ°μ Έλ€ μ¬μ©ν μ μμ΅λλ€.
μ΄μ€μΌμ΄ν μνμ€(escape sequence)λ₯Ό μμλλ©΄ λ€μν ννμ ν μ μμ§λ§, λ€λ£¨μ§ μμ΅λλ€. μμΈν λ΄μ©μ μ¬κΈ°λ₯Ό μ°Έμ‘°νμΈμ.
- μ΄ μ€ μΈκΈνκ³ λμ΄κ°μΌ νλ λΆλΆμ CR(carriage Return,
\r)κ³Ό LF(Line Feed,\n)μ λλ€. - CRLFλ Window 체κ³μ κ°ν λ°©μμ λλ€.
- LFλ Unix 체κ³μ κ°ν λ°©μμ λλ€.
- μλ°μ€ν¬λ¦½νΈλ λ κ°νλ°©μμ μ§μνμ§λ§, LFλ₯Ό κΆμ₯ν©λλ€.
λ Όλ¦¬μ μ°Έκ³Ό κ±°μ§μ λνλ λλ€.
κ°λ°μκ° μλμ μΌλ‘ ν λΉνκΈ° μν κ°μ΄ μλλΌ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ λ³μλ₯Ό μ΄κΈ°νν λ μ¬μ©νλ κ°μ λλ€.
undefined κ°μ μ μΌν©λλ€.
λ³μμ nullμ ν λΉν¨μ μ΄μ μ μ°Έμ‘°νλ κ°μ λ μ΄μ μ°Έμ‘°νμ§ μλλ€λ, κ°μ λν μ°Έμ‘°λ₯Ό λͺ μμ μΌλ‘ μ κ±°νλ μλ―Έμ λλ€.
null κ°μ μ μΌν©λλ€.
ES6μμ μΆκ°λμΌλ©° λ³κ²½ λΆκ°λ₯ν μμ νμ μ κ°μΌλ‘ μ€λ³΅λμ§ μλ μ μΌλ¬΄μ΄ν κ°μ λλ€.
μ°¨ν κΉκ² λ€λ£Ήλλ€. μ¬κΈ°μλ μλ°μ€ν¬λ¦½νΈκ° κ°μ²΄ κΈ°λ°μ μΈμ΄ μ΄λ©° μλ°μ€ν¬λ¦½νΈμ κ±°μ λͺ¨λ κ²μ΄ κ°μ²΄ λΌκ³ μμλμΈμ.





