[JavaScript] 자바스크립트 변수

정의

프로그래밍에서 데이터를 담는 공간이다.

var 변수이름 = 저장데이터;

선언 방법은 var 키워드를 사용하며(현재는 let, const 키워드 사용을 지향한다.), =는 대입 연산자로서 우측에 있는 값을 왼쪽에 있는 변수에 담는 연산자다. ;(세미콜론)은 문장의 끝을 알린다. 오류를 방지하기 위해 문장이 끝나면 꼭 선언해 주도록 하자.

참고로 함수 선언식에서는 마지막에 세미콜론을 붙이지 않는데 이건 하나의 관습이고, 코드 작성시 권장되는 방식이다. 그리고 자바스크립트에서는 세미콜론 사용을 강제하지는 않는다. 그 이유는 자바스크립트 인터프리터가 자동으로 세미콜론을 삽입시켜 주기 때문이다. 하지만 세미콜론을 꼭 선언해 주는 습관을 가지도록 해야한다. 신경을 안쓴다면 코드를 압축하거나 디버깅중에 심각한 오류를 가지게 될수 있기 때문이다.

종류

변수는 크게 네가지로 나뉠수 있으며 종류는 아래와 같다.

1. 전역변수(Global Variable): 전역에서 사용되는 변수로서 어디서든 접근이 가능하다.
2. 지역변수(Local Variable): 특정 지역에서 사용되는 변수로서 보통 함수 내부에 만들어 지는 변수
3. 인자 & 매개변수(Parameter): 함수 외부에서 데이터를 받을 때 사용되는 변수

인수(Arguments)인자 & 매개변수(Parameter)에 대해 다소 헷갈릴 수 있다. 인수는 함수를 호출할때 대입하는 값을 의미하고 인자 & 매개변수는 함수 외부에서 전달받은 값을 의미한다고 볼 수 있다.

function func(foo) {
  return foo; // foo = 인자 & 매개변수
}
func("value") // "value" = 인수

4. 속성(Property): 객체의 속성값으로 쓰이는 변수이다. 참고로 전역 객체는 window 객체이다. 전역변수를 선언한다면 자동으로 window 객체의 프로퍼티가 된다고 생각하면 된다.

var obj = {
  name: "foo"
};
// name = 속성(프로퍼티, 아니면 키)
// foo = 속성의 값(프로퍼티 값 아니면 키값)

명명 규칙

변수를 만들때는 주의사항이 네가지 있다.

  • 변수명은 대소문자를 구분해야 한다.
  • 변수명은 소문자로 시작하고, 관례상 카멜기법을 사용한다. 여기서 카멜기법이란 문자모양이 낙타와 비슷하다고 해서 지어졌다. 네이밍 기법은 3가지로 분류할수 있다.
    • 카멜기법(myName)
    • 스네이크 기법(my_name)
    • 파스칼 기법(my-name)
  • 한번 저장하고 변하지 않는 상수값은 모두 대문자로 작성한다. 자바 언어 같은 경우 상수 값을 만드는 방법이 지원되지만 자바스크립트는 없다. 그래서 관례상 대문자로 작성하는 것이다. 예가 몇가지 있는데 슬라이드 플러그인에서 사용자가 정의하는 변수나, 그누보드의 config.php 에 나와있는 상수 선언 등이 있다.
  • 키워드(예약어)를 사용하면 안된다.(예: var, function, break 등등 아주 많음) 예약어로 변수를 선언하면 브라우저에서 오류 메세지가 출력되므로 많은 예약어를 굳이 따로 외울 필요는 없다.
updated_at 02-05-2017