1. λ³μλ 무μμΈκ°? μ νμνκ°?
π»Β μ»΄ν¨ν°μ λ©λͺ¨λ¦¬
μ»΄ν¨ν°λ CPUλ₯Ό μ¬μ©νμ¬ μ°μ°νκ³ , λ©λͺ¨λ¦¬λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό κΈ°μ΅(μ μ₯)νλ€.
λ©λͺ¨λ¦¬
: λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ λ©λͺ¨λ¦¬ μ
μ μ§ν©μ²΄
- λ©λͺ¨λ¦¬ μ
νλμ ν¬κΈ°λ 1byte(8bit)
- μ»΄ν¨ν°λ λ©λͺ¨λ¦¬ μ
μ ν¬κΈ°λ₯Ό λ¨μλ‘ λ°μ΄ν°λ₯Ό μ μ₯νκ±°λ μ½μ΄λ€μ΄λ©° κ° μ
μ κ³ μ μ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κ°λλ€.
μ»΄ν¨ν°λ λ°μ΄ν°μ μ’
λ₯μ μκ΄μμ΄ λͺ¨λ λ°μ΄ν°λ₯Ό 2μ§μλ‘ μ μ₯λλ€. λ°λΌμ κ°λ€μ λ©λͺ¨λ¦¬μ μ μ₯λλ©° CPUκ° μ΄λ₯Ό μ½μ΄λ€μ¬μ μ°μ°μ μννκ³ μ°μ°μ κ²°κ³ΌμΈ κ° λν λ©λͺ¨λ¦¬μ μ μ₯λλ€.
ν΄λΉ κ°μ μ κ·Όνλ €λ©΄ κ°μ΄ μ μ₯λμ΄ μλ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό ν΅ν΄ λ©λͺ¨λ¦¬ 곡κ°μ μ κ·Όν΄μΌ νλλ°, μλ°μ€ν¬λ¦½νΈλ μ§μ μ μΈ λ©λͺ¨λ¦¬ μ μ΄λ₯Ό νμ©νμ§ μλλ€. λν νλ‘κ·Έλ¨μ΄ μ€νλ λλ§λ€ κ°μ΄ μ μ₯λλ λ©λͺ¨λ¦¬ μμΉλ μμλ‘ κ²°μ μ΄ λλ€. λ°λΌμ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό μ¬μ©νμ§ μκ³ κ°μ μ κ·ΌνκΈ° μν΄ λ³μμ κ°λ
μ΄ λ±μ₯νκ² λμλ€.
π»Β λ³μ
λ³μ(variable)
: κ°μ μ μ₯νκΈ° μν΄ ν보ν λ©λͺ¨λ¦¬ κ³΅κ° μ체 λλ κ·Έ λ©λͺ¨λ¦¬ 곡κ°μ μλ³νκΈ° μν΄ λΆμΈ μ΄λ¦
- μ»΄νμΌλ¬λ μΈν°ν리ν°μ μν΄ κ°μ΄ μ μ₯λ λ©λͺ¨λ¦¬ 곡κ°μ μ£Όμλ‘ μΉνλμ΄ μ€νλλ€.
- κ°μ΄ μλλΌ λ©λͺ¨λ¦¬ 곡κ°μ μμ§μ μΌλ‘ μ΄λ¦μ λΆμΈ κ²
π»Β μ©μ΄ μ 리
λ³μλͺ
(λ³μ μ΄λ¦) : λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯λ κ°μ μλ³ν μ μλ κ³ μ ν μ΄λ¦
λ³μ κ°: λ³μμ μ μ₯λ κ°
ν λΉ(assignment) : λ³μμ κ°μ μ μ₯νλ κ²
μ°Έμ‘°(reference) : λ³μμ μ μ₯λ κ°μ μ½μ΄ λ€μ΄λ κ²
λ³μλͺ
μ ν΅ν΄ μ μ₯λ κ°μ μλ―Έλ₯Ό λͺ
νν ν μ μμΌλ©° μ½λμ κ°λ
μ±μ΄ λμμ§λ€. λ°λΌμ μκ³ νμ¬ λ³μλͺ
μ μ§μ΄μΌ νλ€.
2. μλ³μ
μλ³μ
: λ©λͺ¨λ¦¬μ μ΄λ€ κ°μ ꡬλ³ν΄μ μλ³ν μ μλ κ³ μ ν μ΄λ¦ (λ³μλͺ
, ν¨μλͺ
λ±)
- μλ³μλ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κΈ°μ΅(μ μ₯)ν΄μΌ νλ€.
- μλ³μμ λ©λͺ¨λ¦¬ μ£Όμκ° λ§€ν κ΄κ³λ₯Ό λ§Ίκ³ μμΌλ©° 맀ν κ΄κ³ λν λ©λͺ¨λ¦¬μ μ μ₯λμ΄ μλ€.
- μλ³μλ μ μ₯λ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό ν΅ν΄ λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯λ κ°μ μ κ·Όν μ μλ€.
3. λ³μ μ μΈ
λ³μ μ μΈ : λ³μλ₯Ό μμ±νλ κ²
- λ³μλ₯Ό μ μΈνλ©΄, κ°μ μ μ₯νκΈ° μν λ©λͺ¨λ¦¬ 곡κ°μ ν보(allocate)νκ³ λ³μ μ΄λ¦κ³Ό ν보λ λ©λͺ¨λ¦¬ 곡κ°μ μ£Όμλ₯Ό μ°κ²°(name binding)ν΄μ κ°μ μ μ₯ν μ μκ² μ€λΉνλ€.
- ν보λ λ©λͺ¨λ¦¬ 곡κ°μ νλ³΄κ° ν΄μ λκΈ° μ κΉμ§ λ€λ₯Έ μμ€ν
μ΄ λ©λͺ¨λ¦¬ 곡κ°μ μ¬μ©ν μ μλλ‘ μμ νκ² λ³΄νΈλλ€.
- λ³μ μ μΈ μ,
let
const
var
ν€μλλ₯Ό μ¬μ©νλ€.
- varλ ν¨μ λ 벨 μ€μ½ν, letκ³Ό const λ λΈλ‘ λ 벨 μ€μ½νλ₯Ό μ§μνλ€.
- es6λ es5μ μμ μ§ν©μΌλ‘, es5 μ΄μ μ½λλ€λ es6μμ μ μ λμνλ€.
π»Β λ³μ μ μΈ κ³Όμ
- λ³μ μ μΈλ¬Έ(
var score;
)μ
- μ μΈ λ¨κ³ : λ³μ μ΄λ¦μ λ±λ‘(μ€ν 컨ν
μ€νΈμ λ±λ‘)νμ¬ μλ°μ€ν¬λ¦½νΈ μμ§μ λ³μμ μ‘΄μ¬ μλ¦Ό
- μ΄κΈ°ν λ¨κ³ : κ°μ μ μ₯ν λ©λͺ¨λ¦¬ 곡κ°μ ν보νκ³ μ묡μ μΌλ‘ undefined λ₯Ό ν λΉνμ¬ μ΄κΈ°ν
- varλ μ μΈ λ¨κ³μ μ΄κΈ°ν λ¨κ³κ° λμμ μ§νλλ€. λ°λΌμ varλ‘ μ μΈν λ³μλ undefined κ°μ κ°κ² λλ€. varλ μ묡μ μΌλ‘ μ΄κΈ°νλ₯Ό μνν¨μΌλ‘ μ°λ κΈ°κ°μ΄ λμ¬ μΌμ΄ μλ€.
- μ μΈμ νμ§ μμ μλ³μμ μ κ·Όνκ² λλ©΄ ReferenceError(μ°Έμ‘° μλ¬)κ° λ°μνλ€.
μ€ν 컨ν
μ€νΈ
λ³μ μ΄λ¦μ λΉλ‘―ν λͺ¨λ μλ³μλ μ€ν 컨ν
μ€νΈμ λ±λ‘λλ€.
- μ€ν컨ν
μ€νΈ : μλ°μ€ν¬λ¦½νΈ μμ§μ΄ μμ€μ½λλ₯Ό νκ°νκ³ μ€ννκΈ° μν΄ νμν νκ²½μ μ 곡νκ³ μ½λμ μ€ν κ²°κ³Όλ₯Ό μ€μ λ‘ κ΄λ¦¬νλ μμ
- μλ³μμ μ€μ½νλ₯Ό κ΄λ¦¬
4. λ³μ μ μΈμ μ€ν μμ κ³Ό λ³μ νΈμ΄μ€ν
- λ³μ μ μΈμ λ°νμ μ΄μ νκ° κ³Όμ μ λ¨Όμ μ€νλλ€.
- μ€ν μ νκ° κ³Όμ μμ λͺ¨λ μ μΈλ¬Έ(λ³μ, ν¨μ λ±)μ μμ€μ½λμμ μ°Ύμλ΄ λ¨Όμ μ€ννλ€.
- μμ€μ½λ νκ°κ³Όμ μ΄ λλλ©΄ μ μΈλ¬Έμ μ μΈνκ³ μ½λλ₯Ό ν μ€μ© μμ°¨μ μΌλ‘ μ€ννλ€.
λ³μ νΈμ΄μ€ν
(μλ³μ νΈμ΄μ€ν
)
- λ³μ μ μΈλ¬Έμ΄ μ½λμ μ λλ‘ λμ΄ μ¬λ €μ§ κ²μ²λΌ λμνλ μλ°μ€ν¬λ¦½νΈμ νΉμ§
- ν€μλλ‘ μ μΈλ λͺ¨λ μλ³μλ νΈμ΄μ€ν
λλ€.
5. κ°μ ν λΉ
- ν λΉ μ ν λΉ μ°μ°μ(=) μ¬μ©νμ¬ μ°λ³μ μλ κ°μ μ’λ³ λ³μμ ν λΉνλ€.
- λ³μ μ μΈκ³Ό κ° ν λΉμ λ¨μΆ νν(var num = 3;)ν΄λ μλ°μ€ν¬λ¦½νΈ μμ§μμλ λ³μ μ μΈ / κ°μ ν λΉμ 2κ°μ λ¬ΈμΌλ‘ λλμ΄ μ€ννλ€.
- λ³μ μ μΈμ λ°νμ μ΄μ (νκ° κ³Όμ )μ μ€νλμ§λ§, κ°μ ν λΉμ λ°νμμ μ€νλλ€. λ°λΌμ undefinedλ‘ ν λΉλμ΄ μ΄κΈ°ν λλ κ²μ λ³ν¨ μλ€.
- λ³μμ κ°μ ν λΉν λλ μ΄μ κ°(undefined)κ° μ μ₯λμ΄ μλ λ©λͺ¨λ¦¬ 곡κ°μ μ§μ°κ³ ν λΉκ°μ μλ‘κ² μ μ₯νλ κ²μ΄ μλλΌ, μλ‘μ΄ λ©λͺ¨λ¦¬ 곡κ°μ ν보νκ³ κ·Έκ³³μ ν λΉκ°μ μ μ₯νλ€.
6. μ¬ν λΉ
- μ¬ν λΉ : μ΄λ―Έ κ°μ΄ ν λΉλμ΄ μλ λ³μμ μλ‘μ΄ κ°μ λλ€μ ν λΉνλ κ²
- μλ°μ€ν¬λ¦½νΈλ 맀λμ§λ μΈμ΄λ‘, μ΄λ€ μλ³μμλ μ°κ²°λμ΄ μμ§ μμ λ©λͺ¨λ¦¬ κ°μ κ°λΉμ§ μ½λ ν°μ μν΄ λ©λͺ¨λ¦¬μμ μλ ν΄μ λλ€.
- κ°λΉμ§ μ½λ ν°λ μΈμ΄ μ°¨μμμ λ΄λΉνλ―λ‘ λ©λͺ¨λ¦¬κ° μΈμ ν΄μ λ μ§ κ°λ°μκ° μμΈ‘ν μλ μλ€.
μΈλ§€λμ§λμΈμ΄
(unmanaged language) vs 맀λμ§λμΈμ΄
(managed language)
- μΈλ§€λμ§λμΈμ΄
- ex ) CμΈμ΄
- κ°λ°μκ° λͺ
μμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉνκ³ ν΄μ νκΈ° μν΄μ λ©λͺ¨λ¦¬ μ μ΄ κΈ°λ₯ μ 곡
- κ°λ°μμ μλμ λ°λΌ μ΅μ μ μ±λ₯μ ν보ν μ μμΌλ μΉλͺ
μ μ€λ₯κ° λ°μν μ μμ.
- 맀λμ§λμΈμ΄
- λ©λͺ¨λ¦¬μ ν λΉ, ν΄μ λ±μ μν λ©λͺ¨λ¦¬ κ΄λ¦¬ κΈ°λ₯μ μΈμ΄ μ°¨μμμ λ΄λΉνλ©° κ°λ°μμ μ§μ μ μΈ λ©λͺ¨λ¦¬ μ μ΄λ₯Ό νμ©νμ§ μλλ€.
- λ©λͺ¨λ¦¬ ν΄μ λ κ°λΉμ§ μ½λ ν°κ° μννλ©° κ°λ°μκ° κ΄μ¬ν μ μλ€.
- μΌμ ν μμ°μ±μ ν보ν μ μμ§λ§ μ±λ₯ λ©΄μμ μμ€μ κ°μν΄μΌ νλ€.
7. μλ³μ λ€μ΄λ° κ·μΉ
- μλ³μλ νΉμλ¬Έμλ₯Ό μ μΈν λ¬Έμ, μ«μ, μΈλμ€μ½μ΄, λ¬λ¬ κΈ°νΈλ₯Ό ν¬ν¨ν μ μλ€. (μ«μλ‘ μμ X)
- μμ½μ΄λ μλ³μλ‘ μ¬μ©ν μ μλ€.
- μ¬λ¬κ°λ₯Ό μ½€λ§λ‘ ꡬλΆν΄μ μ μΈν μλ μμΌλ κΆμ₯ X
- μνλ²³ μ΄μΈμ μ λμ½λ λ¬Έμλ‘ μλ³μ κΆμ₯ X
- λμλ¬Έμλ₯Ό ꡬλΆνλ€.
λ€μ΄λ° 컨벀μ
- μΉ΄λ©μΌμ΄μ€(camelCase)
- μ€λ€μ΄ν¬μΌμ΄μ€(snake_case)
- νμ€μΉΌμΌμ΄μ€(PascalCase)
- νκ°λ¦¬μΈμΌμ΄μ€(typeHungarianCase)
μΌλ°μ μΌλ‘λ λ³μλ ν¨μμ μΉ΄λ© μΌμ΄μ€, μμ±μ ν¨μλ ν΄λμ€μλ νμ€μΉΌ μΌμ΄μ€λ₯Ό μ¬μ©
μΆκ°λ‘ μμλ΄μΌ ν κ²
- μ€μ½ν
- μ€ν 컨ν
μ€νΈ
- λ€μ΄λ° 컨벀μ
μλ°μ€ν¬λ¦½νΈ μ€νμΌ κ°μ΄λ - λ€μ΄λ° 컨벀μ
νΈ