19
9월
2007

자바스크립트 – 변수(variables)에 대해서

자바스크립트의 변수(variables)에 대해 이것저것 공부한 것. 자바스크립트(ECMA262)는 우선 Sun의 JAVA와는 전혀 상관이 없다는 것은 다들 알고 있는 사실이죠.


자료형의 종류

  • number : 숫자로 된 데이터. 숫자, NaN(Not a Number), infinity(범위 벗어난 숫자) 형태 중 하나.
  • string : 문자 데이터. “”(겹따옴표, 더블쿼테이션)으로 둘러싸인 형태. length() 메소드를 가짐
  • boolean : TRUE, FALSE 의 두가지 값 존재. 참과 거짓, 0 또는 1의 의미.
  • object : new 키워드로 예약한 객체, BOM or DOM, function, object, null
  • undefined : 정해져 있지 않은 것, 또는 아예 없는 것.

HTML의 폼에서 input으로 들어가는 값은 전부 string으로 인식하기 때문에 만약 계산에 필요한 숫자형이라면 형변환을 해줘야 합니다. 숫자형(number)으로 형변환하는 방법은 Number(), parseInt(), parseFloat() 를 사용합니다.


parseInt() 함수는 숨겨진 두번째 인자가 있는데, parseInt("23",16); 등으로 두번째 인자 값을 숫자로 넣어주면 해당 진수로 변환시켜 줍니다. 지정되지 않았을 때에 기본 값은 10이며 2, 8, 10, 16 등을 사용가능.

또는 숫자형 데이터는 앞에 0을 붙이면 8진수, 0x를 붙이면 16진수가 된다.
a = 10; // 10진수 (10)
a = 010; // 8진수 (8)
a = 0x10; // 10진수 (16)
Number(), String() 등의 함수는 이미 예약되어 있으며, 해당 형으로 형변환하는 기능을 함.

형변환을 잘 알고 있다면 자바스크립트의 소스 분석이 용이합니다.

형변환하기

  • String to Number : Number(), parseInt(), parseFloat()
  • Boolean to Number : false – 0, true – 1
  • Object to Number : valueOf, toString, NaN
  • String to Boolean : length=0 이라면 False, 그외에 length>0 이면 True
  • Number to Boolean : 0 이면 False, 그외에 모든 경우(음수,양수 포함)는 True
  • object = true
  • NULL, undefined = false

모든 연산자는 숫자로 형변환되어 처리되지만 “+” 연산자는 예외입니다. “+” 는 문자열 병합 기능도 가지고 있기 때문입니다. 따라서 “+” 연산자를 사용하여 연산할때 해당 변수 중 하나라도 string형이면 나머지 변수도 모두 string형으로 강제 형변환됩니다. (String Append 현상)

2 + true + “3” + false 를 연산할 때. 순서대로 계산되기 때문에 2+true는 true가 숫자형인 1로 바뀌어 3이 됩니다.
3+”3″ 은 string형이 하나 존재하기 때문에 모두 string형으로 바뀌게 되어 “33”이 됩니다.
“33”+false 도 역시 string형이 존재하므로 최종 값은 “33false”

변수 선언하기

  • 지역변수 : 함수 내에서 var 예약어 사용. (함수 내에서만 사용하는 별도의 변수 생성)
  • 전역변수 : 함수 외부, 또는 global area에서 var 예약어 사용하거나, 그냥 변수를 만들면 문서 내에서 계속 사용가능.

변수명 규칙

  • 영문자, 숫자, _(밑줄) 사용 가능. 변수명의 첫 문자는 영문으로 시작.
  • 자바스크립트 예약어는 사용불가능. (var, this, if 등)
  • 한글 변수명은 원래 사용할 수 없었지만, 자바스크립트 내의 string은 유니코드로 처리되기 때문에 현재는 한글 변수명을 사용할 수 있습니다. (다만 영문 변수명 권장)

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

%d 블로거가 이것을 좋아합니다: