12. 자바스크립트 변수 선언 방식
: 변수 선언 방식에는 var / let / const 와 같이 3가지로 선언 가능 (ES6부터 가능)
-> 변수 이름 충돌로 인하여...


ECMAScript ES6 = ECMAScript 표준의 6번째 에디션 (2015)

* 블록스코프 : {} if, for, function
함수스코프 : 블록스코프 중 함수 범위를 갖는 스코프

1) var  : 함수스코프 : 같은 이름의 변수 재선언 가능.  (var a = 10; var a = 20; 이렇게 선언가능)
2) let  : 블록스코프 : 같은 이름의 변수 재선언 불가능. 값수정 가능 (자바와 동일)
3) const: 블록스코프 : 재선언 불가능. 값수정 불가능 -> 상수
const는 선언과 동시에 값을 할당해야함. 아니면 에러 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
    <script>  //12 자바 변수
        //var
        /*var name = "피카츄";
        console.log(name);
    
        var name = "꼬부기";
        console.log(name);
        */
        
        //let
     /*   let name =  "피카츄";
        console.log(name);
        
        let name = "꼬부기";  //실행 불가
        console.log(name);
       
        name = "haha"
        console.log(name);   // 수정가능
        */
        
        //const
        const name = "피카츄"
        console.log(name);
        
      //  const name = "꼬부기" // 실행 불가
       // console.log(name);
        
        name = "sdsdf"   // 수정 불가
        console.log(name);
        
          var a;
         var b;
         const c = a;
         
    </script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
    <script>
        /*
            // var 함수 스코프
            var foo = "문자문자"
            if(typeof foo == "String"){
                var result = true;
            }else{
                var result = false;
            }
            
            console.log(result); //true 나옴 (사용가능)
        */
        
            var foo = "문자문자"
            if(typeof foo == "String"){
                let result = true;   //
            }else{
                let result = false;
            }
            
            console.log(result); // 에러뜸 ( 사용불가)
    
    </script>
    
</body>
</html>

+ Recent posts