2009년 11월 25일 수요일

변수 (Varables)

변수 (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 형태의 구문을 통해서 설정과 접근을 할 수 있게 된다.

댓글 없음:

댓글 쓰기