본문 바로가기

Programming/JavaScript

[JavaScript] 데이터 타입과 변수 (1)

변수 식별


자바스크립트 변수는 식별자, 영역, 데이터 타입으로 구성된다. 타입 검사가 엄격하지 않기 때문에, 타입 변환이 묵시적으로 일어난다.
자바스크립트 변수는 다른 언어들과 매우 유사하다. 즉, 변수에 값을 저장하여 코드의 다른 부분에서 명시적으로 접근할 수 있고, 각 변수에 사용되는 식별자는 지정된 영역 내에서 유일해야 한다. 식별자에는 문자, 숫자, 밑줄 기호, 달러 기호 등을 조합한 어떠한 문자열도 사용할 수 있다. 단, 첫 글자는 반드시 문자, 달러 기호, 밑줄 기호 중 하나로 시작해야 한다.


_variableidentifier
variableIdentifier
$varibale_identifier
var-ident

자바스크립트 1.5 버전부터는 유니코드 문자, 숫자, 확장 문자열 등도 모두 식별자로 사용할 수 있다.


_üvalid
T\u009

자바스크립트 언어는 대소문자를 구분한다. 즉, 다음과 같은 변수는 서로 다른 것으로 취급된다.


stringVariable
stringvariable

자바스크립트 키워드는 변수 식별자로 사용할 수 없다.


 break  case  catch  continue  default  delete
 do  else  finally  for  function  if
 in  instanceof  new  return  switch  this
 throw  try  typeof  var  void  while
 with          

ECMA Script 예약어와, 브라우저에 구현된 자바스크립트에서 사용되는 단어도 예약어로 간주한다.
내용은 Pass.. -ㅅ-)/

영역(Scope)


영역이란 함수 내에서 지역적인 것이냐, 전체 자바스크립트 프로그램에 전역적으로 적용되는 거이냐를 따지는 것이다. 지역 변수의 경우는 선언/ 초기화 한 후에 함수 내부에서 사용하며, 함수가 소멸될 때 같이 소멸된다. 반대로, 전역 변수는 웹페이지에 포함된 자바스크립트의 모든 부분에서 접근할 수 있다.

다음과 같이 한 줄만으로 변수의 생성/초기화를 동시에 할 수 있다.

num = 3.5;

하지만 아래의 방법이 좀 더 나은 방법이다.

var num = 3.5;

차이점은 var 키워드의 사용 여부이다.
의무사항은 아니지만, 변수를 정의할 때 가급적이면 var 키워드를 사용하는 것이 좋다. 전역 변수와 지역 변수의 이름이 동일할 때 충돌을 방지할 수 있기 때문이다. 함수 내에서 var 키워드를 사용하면 지역 변수로 간주한다. (프로그래머라면 var 키워드를 사용하여 변수 선언을..) 최근에는 자바스크립트 라이브러리의 사용이 늘고 있기 때문에, var 키워드를 사용하는 것이 예상치 못한 부작용을 예방하는 데 있어 효과적이다.
전역 변수를 가급적 피해야 하는 또 하나의 이유는 메모리의 부하 문제이다. 지역 변수는 함수가 종료되면 변수도 메모리에서 같이 삭제된다. 하지만 전역 변수의 경우는 웹페이지가 열려 있는 동안에는 계속해서 메모리에 남아있게 된다. 자바스크립트가 자체적으로 메모리를 관리해 주지만, 고려해 작성하는 것이 나쁠리 없다.