π©π» Java κ°λ°μμ JavaScript κ³΅λΆ κΈ°λ‘
JavaScriptλ₯Ό μ²μ 곡λΆνλ μ μ₯μμ
Java μΈμ΄μ λΉκ΅νμ¬ λ€λ₯Έ μ μ΄λ, νλ‘κ·Έλλ° κ³΅λΆλ₯Ό νλ©° μλ‘κ² μκ² λ λ΄μ©μ μμ£Όλ‘ μ 리νμ΅λλ€.
π 4.1 λ³μλ 무μμΈκ°? μ νμνκ°?
μλ°μ€ν¬λ¦½νΈλ κ°λ°μμ μ§μ μ μΈ λ©λͺ¨λ¦¬ μ μ΄λ₯Ό νμ©νμ§ μλλ€.
νλ‘κ·Έλλ° μΈμ΄λ κΈ°μ΅νκ³ μΆμ κ°μ λ©λͺ¨λ¦¬μ μ μ₯νκ³ , μ μ₯λ κ°μ μ½μ΄ λ€μ¬ μ¬μ¬μ©νκΈ° μν΄ λ³μλΌλ λ©μ»€λμ¦μ μ 곡νλ€.
λ³μλ νλμ κ°μ μ μ₯νκΈ° μν΄ ν보ν λ©λͺ¨λ¦¬ κ³΅κ° μ체 λλ κ·Έ λ©λͺ¨λ¦¬ 곡κ°μ μλ³νκΈ° μν΄ λΆμΈ μ΄λ¦μ λ§νλ€.
λ³μλ νλ‘κ·Έλλ° μΈμ΄μ μ»΄νμΌλ¬ λλ μΈν°ν리ν°μ μν΄ κ°μ΄ μ μ₯λ λ©λͺ¨λ¦¬ 곡κ°μ μ£Όμλ‘ μΉνλμ΄ μ€νλλ€.
λ°λΌμ κ°λ°μκ° μ§μ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό ν΅ν΄ κ°μ μ μ₯νκ³ μ°Έμ‘°ν νμκ° μκ³ , λ³μλ₯Ό ν΅ν΄ μμ νκ² κ°μ μ κ·Όν μ μλ€.
λ³μμ κ°μ μ μ₯νλ κ²μ ν λΉ(assignment)μ΄λΌ νκ³ ,
λ³μμ μ μ₯λ κ°μ μ½μ΄ λ€μ΄λ κ²μ μ°Έμ‘°(reference)λΌ νλ€.
π 4.2 μλ³μ
μλ³μλ κ°μ΄ μ μ₯λμ΄ μλ λ©λͺ¨λ¦¬ μ£Όμμ 맀ν κ΄κ³λ₯Ό λ§ΊμΌλ©°,
μ΄ λ§€ν μ 보λ λ©λͺ¨λ¦¬μ μ μ₯λμ΄μΌ νλ€.
μλ³μλ κ°μ΄ μλλΌ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κΈ°μ΅νκ³ μλ€.
μλ³μλ‘ κ°μ ꡬλ³ν΄μ μλ³νλ€λ κ²μ μλ³μκ° κΈ°μ΅νκ³ μλ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό ν΅ν΄
λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯λ κ°μ μ κ·Όν μ μλ€λ μλ―Έλ€.
μ¦, μλ³μλ λ©λͺ¨λ¦¬ μ£Όμμ λΆμΈ μ΄λ¦μ΄λΌκ³ ν μ μλ€.
π 4.3 λ³μ μ μΈ
λ³μλ₯Ό μ¬μ©νλ €λ©΄ λ°λμ μ μΈμ΄ νμνλ€.
λ³μλ₯Ό μ μΈν λλ var, let, const ν€μλλ₯Ό μ¬μ©νλ€.
var ν€μλλ μ¬λ¬ λ¨μ μ΄ μλ€.
κ°μ₯ λνμ μΈ κ²μ΄ λΈλ‘ λ 벨 μ€μ½νλ₯Ό μ§μνμ§ μκ³ ν¨μ λ 벨 μ€μ½νλ₯Ό μ§μνλ€λ κ²μ΄λ€.
μ΄λ‘ μΈν΄ μλμΉ μκ² μ μ λ³μκ° μ μΈλμ΄ μ¬κ°ν λΆμμ©μ΄ λ°μνκΈ°λ νλ€.
ES6μμ letκ³Ό const ν€μλλ₯Όλμ ν μ΄μ λ var ν€μλμ μ¬λ¬ λ¨μ μ 보μνκΈ° μν΄μλ€.
μλ°μ€ν¬λ¦½νΈ μμ§μ λ³μ μ μΈμ λ€μκ³Ό κ°μ 2λ¨κ³μ κ±°μ³ μννλ€.
- μ μΈ λ¨κ³: λ³μ μ΄λ¦μ λ±λ‘ν΄μ μλ°μ€ν¬λ¦½νΈ μμ§μ λ³μμ μ‘΄μ¬λ₯Ό μλ¦°λ€.
- μ΄κΈ°ν λ¨κ³: κ°μ μ μ₯νκΈ° μν λ©λͺ¨λ¦¬ 곡κ°μ ν보νκ³ μ묡μ μΌλ‘ undefinedλ₯Ό ν λΉν΄ μ΄κΈ°ννλ€.
λ³μ μ΄λ¦μ λΉλ‘―ν λͺ¨λ μλ³μλ μ€ν 컨ν μ€νΈμ λ±λ‘λλ€.
μ€ν 컨ν μ€νΈλ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ μμ€μ½λλ₯Ό νκ°νκ³ μ€ννκΈ° μν΄ νμν νκ²½μ μ 곡νκ³
μ½λμ μ€ν κ²°κ³Όλ₯Ό κ΄λ¦¬νλ μμμ΄λ€.
μλ°μ€ν¬λ¦½νΈ μμ§μ μ€ν 컨ν μ€νΈλ₯Ό ν΅ν΄ μλ³μμ μ€μ½νλ₯Ό κ΄λ¦¬νλ€.
λ³μ μ΄λ¦κ³Ό λ³μ κ°μ μ€ν 컨ν μ€νΈ λ΄μ ν€/κ° νμμΈ κ°μ²΄λ‘ λ±λ‘λμ΄ κ΄λ¦¬λλ€.
λ§μ½ μ μΈνμ§ μμ μλ³μμ μ κ·Όνλ©΄ ReferenceError(μ°Έμ‘° μλ¬)κ° λ°μνλ€.
ReferenceErrorλ μλ³μλ₯Ό ν΅ν΄ κ°μ μ°Έμ‘°νλ € νμ§λ§ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ λ±λ‘λ μλ³μλ₯Ό μ°Ύμ μ μμ λ λ°μνλ μλ¬λ€.
π 4.4 λ³μ μ μΈμ μ€ν μμ κ³Ό λ³μ νΈμ΄μ€ν
μλ°μ€ν¬λ¦½νΈ μμ§μ μμ€μ½λλ₯Ό ν μ€μ© μμ°¨μ μΌλ‘ μ€ννκΈ°μ μμ λ¨Όμ μμ€μ½λμ νκ° κ³Όμ μ κ±°μΉλ©΄μ μμ€μ½λλ₯Ό μ€ννκΈ° μν μ€λΉλ₯Ό νλ€.
μ΄λ μμ€μ½λ μ€νμ μν μ€λΉ λ¨κ³μΈ μμ€μ½λμ νκ° κ³Όμ μμ μλ°μ€ν¬λ¦½νΈ μμ§μ λ³μ μ μΈμ ν¬ν¨ν λͺ¨λ μ μΈλ¬Έ(λ³μ μ μΈλ¬Έ, ν¨μ μ μΈλ¬Έ λ±)μ μμ€μ½λμμ μ°Ύμλ΄ λ¨Όμ μ€ννλ€.
κ·Έλ¦¬κ³ μμ€μ½λμ νκ° κ³Όμ μ΄ λλλ©΄ λΉλ‘μ λ³μ μ μΈμ ν¬ν¨ν λͺ¨λ μ μΈλ¬Έμ μ μΈνκ³ μμ€μ½λλ₯Ό ν μ€μ© μμ°¨μ μΌλ‘ μ€ννλ€.
μ¦, μλ°μ€ν¬λ¦½νΈ μμ§μ λ³μ μ μΈμ΄ μμ€μ½λμ μ΄λμ μλ μκ΄μμ΄ λ€λ₯Έ μ½λλ³΄λ€ λ¨Όμ μ€ννλ€.
λ°λΌμ λ³μ μ μΈμ΄ μμ€μ½λμ μ΄λμ μμΉνλμ§μ μκ΄μμ΄ μ΄λμλ μ§ λ³μλ₯Ό μ°Έμ‘°ν μ μλ€.
λ³μ μ μΈλ¬Έμ΄ μ½λμ μ λλ‘ λμ΄ μ¬λ €μ§ κ²μ²λΌ λμνλ μλ°μ€ν¬λ¦½νΈ κ³ μ μ νΉμ§μ λ³μ νΈμ΄μ€ν μ΄λΌ νλ€.
λ³μ μ μΈλΏ μλλΌ var, let, const, function, function*, class ν€μλλ₯Ό μ¬μ©ν΄μ μ μΈνλ λͺ¨λ μλ³μ(λ³μ, ν¨μ, ν΄λμ€ λ±)λ νΈμ΄μ€ν λλ€.
λͺ¨λ μ μΈλ¬Έμ λ°νμ μ΄μ λ¨κ³μμ λ¨Όμ μ€νλκΈ° λλ¬Έμ΄λ€.
π 4.5 κ°μ ν λΉ
μλ°μ€ν¬λ¦½νΈ μμ§μ λ³μ μ μΈκ³Ό κ°μ ν λΉμ νλμ λ¬ΈμΌλ‘ λ¨μΆ ννν΄λ λ³μ μ μΈκ³Ό κ°μ ν λΉμ 2κ°μ λ¬ΈμΌλ‘ λλμ΄ κ°κ° μ€ννλ€.
μ΄λ μ£Όμν μ μ λ³μ μ μΈκ³Ό κ°μ ν λΉμ μ€ν μμ μ΄ λ€λ₯΄λ€λ κ²μ΄λ€.
λ³μ μ μΈμ λ°νμ μ΄μ μ λ¨Όμ μ€νλμ§λ§, κ°μ ν λΉμ λ°νμμ μ€νλλ€.
λ³μμ κ°μ ν λΉν λλ μ΄μ κ° undefinedκ° μ μ₯λμ΄ μλ λ©λͺ¨λ¦¬ 곡κ°μ μ§μ°κ³ κ·Έ λ©λͺ¨λ¦¬ 곡κ°μ ν λΉ κ° 80μ μλ‘κ² μ μ₯νλ κ²μ΄ μλλΌ
μλ‘μ΄ λ©λͺ¨λ¦¬ 곡κ°μ ν보νκ³ κ·Έκ³³μ ν λΉ κ° 80μ μ μ₯νλ€λ μ μ μ£Όμνμ.
π 4.6 κ°μ μ¬ν λΉ
var ν€μλλ‘ μ μΈν λ³μλ κ°μ μ¬ν λΉν μ μλ€.
μ¬ν λΉμ νμ¬ λ³μμ μ μ₯λ κ°μ λ²λ¦¬κ³ μλ‘μ΄ κ°μ μ μ₯νλ κ²μ΄λ€.
var ν€μλλ‘ μ μΈν λ³μλ μ μΈκ³Ό λμμ undefinedλ‘ μ΄κΈ°νλκΈ° λλ¬Έμ μλ°ν λ§νμλ©΄ λ³μμ μ²μμΌλ‘ κ°μ ν λΉνλ κ²λ μ¬μ€μ μ¬ν λΉμ΄λ€.
ES6μμ λμ λ const ν€μλλ₯Ό μ¬μ©ν΄ μ μΈν λ³μλ μ¬ν λΉμ΄ κΈμ§λλ€.
μ¦, const ν€μλλ λ¨ ν λ²λ§ ν λΉν μ μλ λ³μλ₯Ό μ μΈνλ€.
λ°λΌμ const ν€μλλ₯Ό μ¬μ©νλ©΄ μμλ₯Ό ννν μ μλ€.
μ¬ν λΉμΌλ‘ μΈν΄ μ΄λ€ μλ³μμλ μ°κ²°λμ΄ μμ§ μμ λΆνμν κ°λ€μ κ°λΉμ§ μ½λ ν°μ μν΄ λ©λͺ¨λ¦¬μμ μλ ν΄μ λλ€.
λ¨, λ©λͺ¨λ¦¬μμ μΈμ ν΄μ λ μ§λ μμΈ‘ν μ μλ€.
κ°λΉμ§ μ½λ ν°λ μ ν리μΌμ΄μ μ΄ ν λΉν λ©λͺ¨λ¦¬ 곡κ°μ μ£ΌκΈ°μ μΌλ‘ κ²μ¬νμ¬ λ μ΄μ μ¬μ©λμ§ μλ λ©λͺ¨λ¦¬λ₯Ό ν΄μ νλ κΈ°λ₯μ λ§νλ€.
λ μ΄μ μ¬μ©λμ§ μλ λ©λͺ¨λ¦¬λ, μ΄λ€ μλ³μλ μ°Έμ‘°νμ§ μλ λ©λͺ¨λ¦¬ 곡κ°μ μλ―Ένλ€.
μλ°μ€ν¬λ¦½νΈλ κ°λΉμ§ μ½λ ν°λ₯Ό λ΄μ₯νκ³ μλ 맀λμ§λ μΈμ΄λ‘μ κ°λΉμ§ μ½λ ν°λ₯Ό ν΅ν΄ λ©λͺ¨λ¦¬ λμλ₯Ό λ°©μ§νλ€.
μλ°μ€ν¬λ¦½νΈ κ°μ 맀λμ§λ μΈμ΄λ λ©λͺ¨λ¦¬μ ν λΉ λ° ν΄μ λ₯Ό μν λ©λͺ¨λ¦¬ κ΄λ¦¬ κΈ°λ₯μ μΈμ΄ μ°¨μμμ λ΄λΉνκ³ κ°λ°μμ μ§μ μ μΈ λ©λͺ¨λ¦¬ μ μ΄λ₯Ό νμ©νμ§ μλλ€.
μ¦, κ°λ°μκ° λͺ μμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉνκ³ ν΄μ ν μ μλ€.
맀λμ§λ μΈμ΄λ κ°λ°μμ μλμ μμ‘΄νλ λΆλΆμ΄ μλμ μΌλ‘ μμμ Έ μ΄λ μ λ μΌμ ν μμ°μ±μ ν보ν μ μλ€λ μ₯μ μ΄ μμ§λ§, μ±λ₯ λ©΄μμ μ΄λ μ λμ μμ€μ κ°μν μλ°μ μλ€.
λ°λ©΄, C μΈμ΄μ κ°μ μΈλ§€λμ§λ μΈμ΄λ λ©λͺ¨λ¦¬ μ μ΄λ₯Ό κ°λ°μκ° μ£Όλν μ μμΌλ―λ‘ κ°λ°μμ μλμ λ°λΌ μ΅μ μ μ±λ₯μ ν보ν μ μμ§λ§, κ·Έ λ°λμ κ²½μ° μΉλͺ μ μ€λ₯λ₯Ό μμ°ν κ°λ₯μ±λ μλ€.
π 4.7 μλ³μ λ€μ΄λ° κ·μΉ
μλ³μλ μ΄λ€ κ°μ ꡬλ³ν΄μ μλ³ν΄ λΌ μ μλ κ³ μ ν μ΄λ¦μ λ§νλ€.
μλ³μλ λ€μκ³Ό κ°μ λ€μ΄λ° κ·μΉμ μ€μν΄μΌ νλ€.
- μλ³μλ νΉμλ¬Έμλ₯Ό μ μΈν λ¬Έμ, μ«μ, μΈλμ€μ½μ΄(_), λ¬λ¬ κΈ°νΈ($)λ₯Ό ν¬ν¨ν μ μλ€.
- λ¨, μλ³μλ μ«μλ‘ μμνλ κ²μ νμ©νμ§ μλλ€.
- μμ½μ΄λ μλ³μλ‘ μ¬μ©ν μ μλ€.
λ³μ μ΄λ¦λ μλ³μμ΄λ―λ‘ λ€μ΄λ° κ·μΉμ λ°λΌμΌ νλ€.
λ³μ μ΄λ¦μ λ³μμ μ‘΄μ¬ λͺ©μ μ μ½κ² μ΄ν΄ν μ μλλ‘ μλ―Έλ₯Ό λͺ νν ννν΄μΌ νλ€.
μ’μ λ³μ μ΄λ¦μ μ½λμ κ°λ μ±μ λμΈλ€.
λ³μ μ μΈμ λ³λμ μ£Όμμ΄ νμνλ€λ©΄ λ³μμ μ‘΄μ¬ λͺ©μ μ λͺ νν λλ¬λ΄μ§ λͺ»νλ κ²μ΄λ€.
λ€μ΄λ° 컨벀μ μ νλ μ΄μμ μμ΄ λ¨μ΄λ‘ ꡬμ±λ μλ³μλ₯Ό λ§λ€ λ κ°λ μ± μ’κ² λ¨μ΄λ₯Ό νλμ ꡬλΆνκΈ° μν΄ κ·μ ν λͺ λͺ κ·μΉμ΄λ€.
λ€μ΄λ° 컨벀μ μ μ μ§ν€λ©΄ μ½κΈ° μ’μ μ΄λ¦μ λ§λ€ μ μλ€.
// μΉ΄λ© μΌμ΄μ€
var firstName;
// μ€λ€μ΄ν¬ μΌμ΄μ€
var first_name;
// νμ€μΉΌ μΌμ΄μ€
var FirstName;
// νκ°λ¦¬μΈ μΌμ΄μ€
var strFirstName; // type + identifier
μΌκ΄μ±μ μ μ§νλ€λ©΄ μ΄λ€ λ€μ΄λ° 컨벀μ μ μ¬μ©ν΄λ μ’μ§λ§,
μλ°μ€ν¬λ¦½νΈμμλ μΌλ°μ μΌλ‘ λ³μλ ν¨μμ μ΄λ¦μλ μΉ΄λ© μΌμ΄μ€λ₯Ό μ¬μ©νκ³
ν΄λμ€μ μ΄λ¦μλ νμ€μΉΌ μΌμ΄μ€λ₯Ό μ¬μ©νλ€.
'Programming Language > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive] 3μ₯ μλ°μ€ν¬λ¦½νΈ κ°λ° νκ²½κ³Ό μ€ν λ°©λ² (0) | 2024.08.17 |
---|---|
[λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive] 2μ₯ μλ°μ€ν¬λ¦½νΈλ? (2) | 2024.08.16 |