μλ°μ€ν¬λ¦½νΈμμ λ³μ μ μΈκ³Ό ν¨μ μ μΈμ΄ μ½λμ 맨 μλ‘ λμ΄μ¬λ €μ§λ λμμ λ§νλ€.
λ³μμ ν¨μλ₯Ό μ μΈνκΈ° μ μλ μ¬μ©ν μ μλ κ²μ²λΌ 보μ΄κ² νλ λ©μ»€λμ¦μ΄λ€.
νΈμ΄μ€ν μ κ°λ μ μ‘κΈ°μ μ μ΄κ²λΆν° μκ³ κ°μ.
μλ°μ€ν¬λ¦½νΈμμλ μ΄ 3λ¨κ³
μ κ±Έμ³μ λ³μλ₯Ό μμ±νλ€.
<script>
ex) let name;
</script>
<script>
ex) let name = 'μ κ΄μ§';
</script>
<script>
ex) name = 'νκΈΈλ';
</script>
κ·ΈλΌ μ΄μ νΈμ΄μ€ν μ λν΄ μμΈν μμ보μ.
<script>
document.write('<br>a:',a);
var a = 10; // undefined, νΈμ΄μ€ν
κΈ°λ₯μ΄ μλ λ°μ. λΉκΆμ₯
</script>
varλ μ μΈκ³Ό λμμ μ΄κΈ°νκ° μ΄λ£¨μ΄μ§λ€. μ¦, μ μΈκ³Ό λμμ undefinedκ° ν λΉλλ€. λν,
varλ‘ μ μΈν λ³μλ λ³μ μ μΈμ΄ ν΄λΉ μ€μ½νμ 맨 μλ‘ λμ΄μ¬λ €μ§λ νΈμ΄μ€ν
μ΄ μλμΌλ‘
λ°μνλ€.
λ°λΌμ λ³μλ₯Ό μ μΈνκΈ° μ μ μ¬μ©νλλΌλ μ€λ₯κ° λ°μνμ§ μλλ€. λμ κ°μ undefinedμΌλ‘ λλ€.
<script>
document.write('<br>a:',ab);
let ab = 10;
// Uncaught ReferenceError: Cannot access 'ab' before initialization
document.write('<br>a:',abc);
const abc = 10;
// Uncaught ReferenceError: Cannot access 'abc' before initialization
</script>
let
, const
λ‘ μ μΈλ λ³μλ₯Ό μ μΈλ¬Έ μ΄μ μ μμ±νλ©΄ μ°Έμ‘° μλ¬(ReferenceError)κ° λ°μνλ€.
let
, const
λ‘ μ μΈλ λ³μλ var
λ‘ μ μΈλ λ³μμλ λ¬λ¦¬ μ μΈ λ¨κ³μ μ΄κΈ°ν λ¨κ³κ° λΆλ¦¬λμ΄
μ§νλκΈ° λλ¬Έμ΄λ€.
κ·Έλ¬λ©΄ νλ JavaScriptμμ λ§μ΄ μ¬μ©λκ³ μλ let, constλ€μ΄ νΈμ΄μ€ν μ λ°μλμ§ μκΈ° μν΄μλ μ΄λ»κ² ν΄μΌν κΉ?
λ°©λ²μ κ°λ¨νλ€.
λ¨Όμ μΆλ ₯νκΈ° μ μ λ¨Όμ λ³μλ₯Ό μ μΈκ³Ό, μ΄κΈ°νλ₯Ό λ¨Όμ ν΄μ£Όλ©΄ λλ€.
<script>
const abc = 10;
document.write('<br>a:',abc);
</script>
λλ²μ§Έ λ°©λ²μ ν¨μ μ μΈλ¬Έμ μ¬μ©νμ¬ νΈμ΄μ€ν μ μ μ΄νλ λ°©λ²μ΄λ€.
<script>
academytwo(); // "μμ΄μ½μμΉ΄λ°λ―Έ"
function academytwo () {
console.log("μμ΄μ½μμΉ΄λ°λ―Έ");
};
</script>