기린의 기록을 위한 공간

[JavaScript] 변수 본문

Programming/JavaScript

[JavaScript] 변수

girin code 2020. 2. 12. 19:25

자바스크립트에서 변수는 function scope의 범위를 가지고 있음

그 범위는 global scope(전역) / local scope(지역영역)

선언 : var 변수명 *별도의 자료형을 선언하지 않는 동적 자료형을 가지고 있음

 *var 예약어를 사용하지 않고 변수사용가능(권장하진않음)


<script>

//전역번수 - window밑으로 들어감 페이지전체에서 사용가능

var name = "이름"

//저역번수 - var없이 사용가능하지만 권장x

age = 20;


function test(){

var height = 180; //function 안에서만 사용이 가능한 변수

var address = "주소"; //변수 코드를 읽는 순간 window객체의 멤버변수로 추가

}

</script>



[호이스팅]

자바스크립트 변수는 독특한 특징이 있음 ->호이스팅 hoisting(var로 선언된 변수들만 적용됨) 

미리 저장공간 확보부터 함

     

 console.log(c); 

      var c; //변수가 밑에있어도 먼저 저장공간을 확보해놓음


      

        var name=19; //위에있는 변수를 중복으로 선언을 해도 제재할 수단이없음 (에러메세지를         출력안해줌)


        for(var i=0; i<10; i++){

            console.log(i);

        }

// i가 var로 선언되있기 때문에 외부에서도 출력가능

        console.log("외부에서 for문의 초기화변수 : "+i);




[ecma6]

 변수를 선언할 때 var X -> const, let를 만듬

 const, let -> functionscope(window)가 아니라 blockscope { }안에서만 활용이가능

 전역에 중복으로 선언이 되면 에러메세지를 출력해줌.


 const : 불변의 변수 -> 상수(선언할 때 초기화를 해줘야함) -> 전역변수

 let : 값변경이 가능한 변수 -> 일반변수


const d =100;
{
      //const는 blockscope이기 때문에 { }안에서만 활용이 가능
       const d = "상수";
       console.log(a);
       console.log(d); //위에 100으로 선언된 d 말고 내부에 있는 상수 불러옴
 }

 //for문에서는 안전하게 var대신 let을 쓴다(var는 다른곳에서도 쓸수있기때문)

        for(let j=10;j>0;j--){

            console.log(j);

        }


Comments