WEB/JavaScript

[JavaScript] λ³€μˆ˜ μ„ μ–Έν•˜κΈ°(var, let, const)

developer of the night sky 2023. 10. 11. 09:27

πŸ”»λ³€μˆ˜ μ„ μ–Έν•˜κΈ°πŸ”»

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은 잘 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.