본문 바로가기

javascript

변수 선언

변수 선언




자바스크립트에서는 변수를 사용하기 전에 변수 선언(declaration)을 해야 한다. 변수는 다음과 같이 var 키워드를 이용하여 선언한다.


1
2
var i;
var sum;
cs



var 키워드를 이용하여 여러 개의 변수를 선언할 수도 있다.


1
var i, sum
cs



그리고 변수 선언과 동시에 초기화를 할 수도 있다.


1
2
3
var message = "hello";
 
var i = 0, j = 0, k = 0;
cs




var문에서 변수에 초기 값을 지정하지 않는다면, 변수는 값이 설정될 때까지 undefined값을 갖게 된다.


1
2
3
var a;
 
console.log(a); // undefined
cs




var문은 for와 for/in 루프 안에 올 수도 있다. 이를 통해 루프 문법 안에서 루프 변수(loop variable)를 간결하게 정의할 수 있다.


1
2
3
4
5
for(var i = 0; i< 10; i++console.log(i);
 
for(var i = 0, j = 10; i < 10; i ++, j--console.log(i*j);
 
for(var p in o) console.log(p);
cs




자바스크립트 변수 선언에는 타입을 명시하지 않는다.

자바스크립트에서는 변수에 숫자를 할당했다가 나중에 문자열을 할당해도 문법적으로 문제가 없다.


1
2
3
var i = 10;
 
= 'ten';
cs





반복된 선언과 생략된 선언




var문장에서는 변수를 하나 이상 선언할 수 있다. 반복된 변수 선언에 초기값이 부여된 경우, 선언문은 마치 대입문처럼 동작한다.


선언하지 않은 변수를 읽으려 하면 자바스크립트는 에러를 발생시킨다.



ECMAScript 5 엄격 모드에서는 선언하지 않은 변수에 값을 넣으려해도 에러가 발생한다. 하지만 역사적으로 비-엄격 모드( non-strict mode)에서는 선언하지 않은 변수에 값을 배정하면, 그 변수는 전역 객체의 속성으로 생성되어, 마치 미리 선언했던 전역 변수처럼 동작하게 된다(하지만 완전히 같지는 않다.) 




이는 전역변수를 선언하지 않은 채 사용할 수 있다는 의미다. 하지만 이것은 나쁜 습관이며 버그의 근원이므로, 항상 변수는 var로 선언하도록 해야 한다.

'javascript' 카테고리의 다른 글

기타 연산자들  (0) 2017.03.12
평가 표현식  (0) 2017.03.12
기본 표현식  (0) 2016.12.22
변수의 유효범위  (0) 2016.12.20
숫자  (0) 2016.12.13