변수란, 데이터를 담아두는 공간이며 프로그램에서 사용되는 데이터를 일정 기간 동안 기억하여 필요한 때에 다시 사용하기 위해 데이터에 고유의 이름인 식별자를 명시한 것이다.
JavaScript는 동적 타입의 언어이기 때문에 변수의 타입 지정없이 값이 할당되는 과정에서 자동으로 변수의 타입이 결정된다. 즉, 변수는 고정된 타입이 없으며 같은 변수에 여러 타입의 값을 자유롭게 할당할 수 있다.
변수는 var
, let
, const
키워드를 사용하여 선언하고 할당 연산자(=
)를 사용해 값을 할당한다. 그리고 식별자인 변수명을 사용해 변수에 저장된 값을 참조한다.
var score; // 변수의 선언
score = 80; // 값의 할당
score = 90; // 값의 재할당
score; // 변수의 참조
// 변수의 선언과 할당
var average = (50 + 100) / 2;
변수는 애플리케이션에서 한번 쓰고 버리는 값이 아닌 값이 아닌 일정 기간 유지할 필요가 있는 값에 사용하며 변수를 사용하면 값의 의미가 명확해져서 코드의 가독성이 좋아진다.
변수의 존재 목적을 쉽게 이해할 수 있도록 의미있는 변수명을 지정하여야한다.
변수를 선언할 때 지어주는 이름(변수명)을 식별자(Identifier)라고 부르며 JavaScript에서 식별자는 몇 가지 규칙을 반드시 따라야 한다.
var foo; // valid
var _bar123; // valid
var $1234337; // valid
var 7seven; // invalid
var function; // invalid
JavaScript에서 예약어가 아닌 hello
와 같은 단어는 아무런 의미가 없는 단어이며 hello
라는 이름의 변수를 만든다는 것은 hello
라는 단어가 존재하도록 만들어주는 것이다. 선언하지 않은 변수명, 예약어가 아닌 단어는 기본적으로 JavaScript에서 사용할 수 없다.
alert(hello); // hello가 뭐지? 무슨 뜻인지 모르겠는데..?! -> Error
var hello = 'Greeting!';
alert(hello); // hello가 뭐지? 아, 위에 만들어진 단어구나. hello는 'Greeting!'이라는 의미를 갖고 있구나. -> No Error