JavaScript

스코프 강의 내용 22.08.11

연93 2022. 8. 11. 17:35
// 전역변수와 지역변수가 이름(식별자)이
        // 같은 경우 가까이에 있는 식별자가
        // 먼저 해석(resolution)됨
        let     gValue1 = 100;
        
        const f1 = function()
        {
            let     gValue1 = 200;
            console.log('f1() ' + gValue1);
            
        }
        
        f1();​
// 전역영역에 올린 변수들은
        // 1. 어디에서나 접근가능.
        // 2. let, var, const 차이가 없음.

        // 따라서 스코프는 지역영역에서
        // 해석하는 방식을 중점적으로 학습!

        let     gValue1 = 100;
        const   gValue2 = 100;
        var     gValue3 = 100;

        const f1 = function()
        {
            console.log('f1() ' + gValue1);
            console.log('f1() ' + gValue2);
            console.log('f1() ' + gValue3);
            
        }
        
        console.log(gValue1);
        console.log(gValue2);
        console.log(gValue3);
  // ES5의 함수는 호이스팅의 대상이다.
        f1();
        
        // ERROR (ES6방식은 호이스팅의 대상이 아님)
        //f2();
        
        function f1()
        {            
            var i = 10;
            console.log('ES5-f1()' + i);
        }

        const f2 = function()
        {
            
            console.log('ES6-f2()');
        }​
// 지역 변수내에서 var와 let(const)은 차이가 있음
        // let, const : 블록 레벨 스코프.
        const f1 = function()
        {   


            for (let i = 0; i < 5; i++)
            {
                console.log(i);

            }
            // ERROR 발생, let 이나 const는 블록 레벨 스코프 이다.
            // console.log(i);                        
        }
        
        
        // var : 함수 레벨 스코프.
        const f2 = function()
        {             
            for (var i = 0; i < 5; i++)
            {
                console.log(i);

            }

            console.log(i);
        }       
       
        f1();
 // 스코프 체이닝
        let a = 10;
       
        const f1 = function()
        {
            let a = 20

            const f2 = function()
            {
                let a = 30
                console.log(a);
              
            }

        }

        f1();

'JavaScript' 카테고리의 다른 글

bubblesort 강의 정리  (0) 2022.08.16
콜백 함수 정리  (0) 2022.08.14
JS강의 로또만들기 22.08.10  (0) 2022.08.10
객체연습  (0) 2022.08.09
forEach.map 실습 22.08.09  (0) 2022.08.09