๐ป๋ณ์ ์ ์ธํ๊ธฐ๐ป
1. var
- BOM, DOM, ES6 ๋ฒ์ ์์ ์ฌ์ฉํ๋ค.
- function-scoped ์ฑ๊ฒฉ์ ์ง๋๋ค.
- ์ ์ด๋ฌธ์ ์๊ธฐ ์์ญ์ผ๋ก ์ธ์์ ๋ชปํ๋ค.
- ์์ ์ ์ธ์ด ๋ถ๊ฐ๋ฅํ๋ค.
- ์ค๋ณต ์ ์ธ์ด ๊ฐ๋ฅํ๋ค.
<script>
var a = 10;
var a = 20;
console.log(a);
</script>
a๋ฅผ ์ค๋ณต ์ ์ธ์ ํ ๋ค console.log๋ก ์ฐ์ด๋ณด๋ฉด 20์ผ๋ก ๋์จ๋ค.
2. let
- ES6(ECMAScript 2015)์์ ์์ฑ๋์๋ค.
- block-scoped ์ฑ๊ฒฉ์ ์ง๋๋ค.
- block-scoped : ํจ์์ ์ ์ด๋ฌธ์ ์์ ์ ์์ญ์ผ๋ก ์ธ์ํ๋ค.
- ์ค๋ณต ์ ์ธ์ด ๋ถ๊ฐ๋ฅํ๋ค.
- ๋ณ์๋ฅผ ์ง์ํ๋ ํค์๋์ด๋ค.
<script>
let a = 10; //์ ์ญ๋ณ์
function m1() {
let b = 20; //์ง์ญ๋ณ์(m1)
}
m1();
console.log(b); //Uncaught ReferenceError: b is not defined
</script>
ํจ์ m1์์ ์ ์ธ๋ b๋ ํจ์ ๋ฐ์์ ํธ์ถํ๋ฉด 'Uncaught ReferenceError: b is not defined' ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
<script>
let a = 10; //์ ์ญ๋ณ์
if (a>0) {
let c = 30; //์ง์ญ๋ณ์(if)
var d = 40; //์ ์ญ๋ณ์
}
console.log(d);
console.log(c); //Uncaught ReferenceError: c is not defined
</script>
์กฐ๊ฑด๋ฌธ ๋ด์์ ์ ์ธ๋ c๋ ์กฐ๊ฑด๋ฌธ ๋ด์ ์๋ ์ง์ญ๋ณ์์ด๊ธฐ์ ์กฐ๊ฑด๋ฌธ ๋ฐ์์ ํธ์ถํ๋ฉด 'Uncaught ReferenceError: c is not defined' ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
<script>
let a = 10; //์ ์ญ๋ณ์
let a = 50; //Cannot redeclare block-scoped variable 'a'.
</script>
let์ผ๋ก ์ ์ธํ ์ง์ญ๋ณ์๋ ์ฌ์ ์ธ์ด ๋ถ๊ฐ๋ฅํ๋ค.
3. const
- ES6(ECMAScript 2015)์์ ์์ฑ๋์๋ค.
- block-scoped ์ฑ๊ฒฉ์ ์ง๋๋ค.
- block-scoped : ํจ์์ ์ ์ด๋ฌธ์ ์์ ์ ์์ญ์ผ๋ก ์ธ์ํ๋ค.
- ์ค๋ณต ์ ์ธ์ด ๋ถ๊ฐ๋ฅํ๋ค.
- ์์(final ๋ณ์)๋ฅผ ์ง์ํ๋ ํค์๋์ด๋ค.
<script>
const PI = 3.14;
PI = 5.28;
console.log(PI); //Assignment to constant variable.
</script>
์์๋ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ์ฌ ์์ ํ๋ฉด 'Assignment to constant variable.' ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
const list = document.getElementById('list');
์์ ํ ์ผ์ด ์๋ ๋ณ์๋ const๋ก ์ ์ธํ๋ค.
const list = document.getElementById('list');
list.setAttribute('title', 'ํ์ ๋์๋ง');
list.innerText='ํ๊ธธ๋';
const list๋ document.getElementById('list') ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฐธ์กฐํ๊ณ ์์ผ๋ฏ๋ก list์ ์์ฑ์ด๋ ๋ฐ์ดํฐ๋ ๋ณ๊ฒฝํ ์ ์๋ค.
let, const๊ฐ ๋ฑ์ฅํ๋ฉด์ var์ ์ ์ฌ์ฉํ์ง ์๋๋ค.
'WEB > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] object (0) | 2023.10.11 |
---|---|
[JavaScript] (์๋)์ฝ๋ ์ฌ๋ฐฐ์น : hoisting (0) | 2023.10.11 |
[JavaScript] DOM - ๋์ ์ผ๋ก ํ๊ทธ ์์ฑํ๊ธฐ (0) | 2023.10.10 |
[JavaScript] DOM - event ๋ฑ๋ก ๋ฐ ์ญ์ (0) | 2023.10.10 |
[JavaScript] DOM - ํ๊ทธ ๊ฒ์ ๋๊ตฌ(2) : Axis ๊ฒ์ (0) | 2023.10.10 |