변수 (Variables)
어플리케이션 내의 값들을 저장하기 위해 사용하는 상징적인 명칭을 변수라고 한다. 변수들의 이름들은 식별자라고도 불리며 어떠한 규칙을 따른다.
자바스크립트 식별자는 반드시 문자, underscore(_), 또는 달러 기호($)로 시작해야 하며, 후속 문자로는 숫자도 가능하다. 자바스크립트는 대소문자를 구분하며, 문자는 “A”에서 “Z”와 소문자 “a”에서 “z”까지 사용 가능하다.
자바스크립트 1.5에서부터 유니코드 문자를 사용할 수 있게 되었다. \uXXXX유니코드를 이용해서 아래와 같이 식별자로 사용할 수 있다.
| Category | Unicode value | Name | Format name |
| White space values | \u0009 | Tab | |
| | \u000B | Vertical Tab | |
| | \u000C | Form Feed | |
| | \u0020 | Space | |
| Line terminator values | \u000A | Line Feed | |
| | \u000D | Carriage Return | |
| Additional Unicode escape sequence values | \u0008 | Backspace | |
| | \u0009 | Horizontal Tab | |
| | \u0022 | Double Quote | " |
| | \u0027 | Single Quote | ' |
| | \u005C | Backslash | \ |
적합한 변수 명칭 예로는 board_hits, year1990, and_name 등이 있다.
변수 선언 (Declaring Variables)
2가지 방법으로 변수를 선언:
- 키워드 var를 사용하는 경우. var x = 10. 이러한 방법은 local과 global 변수 선언 모두에 적용됨
- 단순하게 값만을 할당하는 경우. x = 10. 항상 global 변수로 선언하게 되며, 정적 자바스크립트 경고(warning)를 발생. 이러한 변수 선언을 사용하지 말아야 함
변수 평가 (Evaluating Variables)
var 문을 이용한 변수 선언에서 값을 초기화 하지 않을 경우 undefined 값을 가지게 된다.
선언되지 않은 변수에 대해서 접근을 시도할 경우 ReferenceError 예외를 발생시킨다.
var a;
print("The value of a is " + a); // prints "The value of a is undefined"
print("The value of b is " + b); // throws ReferenceError exception
변수에 값이 할당되어 있는지 확인하기 위해 undefined를 사용할 수 있으며, input 변수에는 값이 할당된 상태가 아니며 if 절에서 평가 후 true가 될 것이다.
var input;
if(input === undefined){
doThis();
} else {
doThat();
}
Undefined 값은 논리연산자와 함께 사용되어질 경우에는 false와 같다. 예를 들면, myArray 요소에 값이 정의되지 않았기 때문에 false를 리턴해서 myFunction 함수를 실행하게 된다.
var myArray = new Array();
if (!myArray[0]) myFunction();
변수 값이 null 일 경우, null 값은 정수와 함께 사용될 경우 0이 되며 논리연산 영역에서 사용될 경우에는 false 값이 된다.
var n = null;
print(n * 32); // prints 0
변수 범위 (Variable Scope)
특정 함수 바깥에 선언된 변수를 global 변수라 하며, 현재의 document에서는 어떠한 다른 코드에서 선언된 변수를 호출할 수 있게 된다. 함수 내에 선언된 변수를 local 변수라 하며 이것은 해당 함수 내에서만 사용할 수 있다.
자바스크립트는 block statement scope를 가지고 있지 않으며, block 내의 로컬코드가 될 것이다. 아래의 코드 예에서 보듯이 if문의 조건이 false가 되면 0이 리턴 될 것이다.
if (condition) {
var x = 5;
}
print(x ? x : 0);
자바스크립트에서는 변수를 선언하기 전에 변수를 참조하더라도 예외 발생 없이 사용이 가능하다.
print(x === undefined); // prints "true"
var x = 3;
전역 변수 (Global Variables)
전역 객체(global object)의 속성으로 전역 변수가 있다. 웹 페이지에서의 전역 객체는 window이며, window.xxxx 형태의 구문을 통해서 설정과 접근을 할 수 있게 된다.
댓글 없음:
댓글 쓰기