자바스크립트의 변수는 타입을 지정해주지 않는 방법으로 선언을 하 사용을 합니다.
var
키워드를 이용해 타입 지정 없이 선언을 하고 사용합니다.
1 2 3
| var id; var id = 372; id = "372";
|
동시에 여러 변수를 선언할 수 있습니다.
1 2 3
| var idNum, name; idNum = 1; name = "삼치리";
|
변수를 선언 할 때 undefined
로 되어 있다가 할당 코드가 나오면 값이 할당 됩니다.
유효 범위(scope)
1 2 3 4 5 6
| var name = "global"; function checkscope(){ var name = "local"; console.log(name); } checkscope();
|
전역변수(global variable)
전역적으로 정의되어 있는 변수를 말합니다.
var 키워드 없이 변수를 선언하면 자동으로 전역 변수가 됩니다.
1 2 3 4 5 6 7 8
| var name = "global"; function checkscope(){ name = "local"; name2 = "local"; } checkscope(); console.log(name); console.log(name2);
|
지역변수(local variable)
함수내부에서 선언되며 함수내부에서만 유효합니다.
함수가 실행될 때 함수 내부에 있는 모든 변수는 가장 위로 배치됩니다. 하지만 선언만 유효하고 할당 값은 해당 코드의 위치가 수행될 때 할당 됩니다. 그 이전에는 undefined
입니다.
1 2 3 4 5 6
| var name = "삼치리"; function f() { console.log(name); var name = "비밀"; console.log(name); }
|
중첩함수의 유효 범위
중첩 함수에서 내부 함수는 그것이 담긴 함수의 변수에 접근할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12
| function changeName(name){ function inner1(){ name = name + "-inner1"; function inner2(){ name = name + "-inner2"; } inner2(); } inner1(); return name; } console.log(changeName("Hello"));
|
블록 유효 범위
블럭 유효범위가 없어서 블럭이 닫힌 후에도 블럭 내부의 변수를 사용할 수 있습니다.
1 2 3 4 5 6 7
| { var count = 10; } console.log(count); for (var i=0; i<11; i++){} console.log( i );
|
Java,C 등의 언어와 비교해서 변수의 사용방법과 유효성이 조금 달라서 헷갈리지 않게 잘 익혀둬야할 내용이라고 생각합니다.