변수는 데이터에 이름을 지어 보관하는 것이다.
특정 데이터를 반복해서 사용하거나 전달해야할 때, 데이터를 계속 사용한다면 불편하다.
생활코딩님 상상법을 사용하자면,
10만 길이의 문자열을 전달해야할 때, 그 문자열을 전달해야 한다면? 10만 길이의 문자열을 복사해서 사용할 것인가?
10만 길이를 대체해 표현할 수 있는 변수에 저장해서 사용한다면 아주 행복하고 즐거울 것 같다.
변수의 선언은 데이터를 저장할 공간을 미리 선언하는 것과 같다. Javascript에서 변수는 다음과 같이 선언할 수 있다.
var myName;
var myAge;
Javascript에서는 선언된 변수에 값이 할당 되지 않은 경우 undefined
라는 값을 할당한다.
선언된 변수에 데이터를 넣어주는 것과 같다.
myName = 'sinf';
myAge = '29';
값이 저장된 변수는 undefined
가 아니라 할당된 데이터를 불러오게 된다.
변수의 선언과 초기화는 동시에 이루어질 수 있다.
var myName = 'sinf';
var myAge = 29;
변수에 값을 저장한 뒤에 다른 값을 다시 지정할 수 있다.
myName = 'young';
재지정이 이루어지면 이전 값이 아니라 새로 지정된 값이 할당되고, 사용하게 된다.
정수, 실수와 같은 숫자 데이터를 저장할 수 있다.
var integer = 20;
var float = 20.9;
문자열은 '
, "
으로 둘러싸고 변수에 전달한다.
var myName = 'sinf';
true
, false
와 같은 참, 거짓 데이터를 저장할 수 있다.
var t = true;
var f = false;
데이터 여러개를 하나의 묶음으로 사용할 수 있다.
생활코딩님 상상법을 사용하자면,
비슷한 데이터가 10만개가 있을 때, 하나 하나 변수를 지정하고 사용한다면? name1, name2, ... name100000 까지 변수의 이름을 지정할 것인가?
배열을 사용하면 하나의 묶음으로 사용할 수 있다.
var names = [
'sinf', 'young', 'abc', 'kim',
// 10만개 ~
];
배열은 대괄호로 묶고 그 안에 데이터를 ,
로 구분해 저장할 수 있다.
묶어두고 사용할 수 없다면 묶을 필요 없다.
names[0]; // sinf
names[2]; // abc
0번부터 시작해 인덱스로 배열의 값에 접근할 수 있다.
비슷한 종류의 데이터를 저장하는데는 배열을 사용했다.
근데, 한 사람의 정보를 배열로 저장하기에는 이름, 나이, 주소 같은 것들이 비슷한 종류의 데이터가 아니라 사용하기 어렵다.
그럴 때, 객체를 사용하면 좋다.
var person = {
name: 'sinf',
age: 29,
addr: 'seoul'
};
객체 또한 사용하지 않으면 낭비!
person.name // sinf
person.age // 29