변수는 변하는 값을 저장할 수 있는 메모리 공간이다.
변수에는 오직 한개의 데이터만 저장되며 새로운 데이터가 들어오면 기존의 데이터는 지워지게 된다.


변수에 저장할 수 있는 데이터의 종류는 문자형(string), 숫자형(number), 논리형(boolean), 비워진(null) 데이터가 있다.



변수 선언


var 변수명;
var 변수명 = ;


변수를 선언할 때는 기본형으로 var 키워드를 변수명 앞에 붙인다.
변수명을 지을 때는 한글을 사용할 수 없으며, 영문과 숫자 그리고 _와 $만 포함할 수 있다.


var box;
box = 100;


box라는 이름의 변수에 100이라는 값을 대입한 예제이다.
처음에는 비어있는(null) 상태였다가 100을 대입하면 변수에 100이 저장된다.


변수에는 하나의 값만 넣을 수 있다.


var box;
box = 100; 
box = 10;

document.write(box);


만약 위의 예제처럼 값을 두번 넣는다면 기존에 저장되어 있는 100은 삭제되고 새로운 데이터 10이 저장된다.






문자형 데이터 string


var 변수명 = "문자 또는 숫자";


문자형 데이터는 문자나 숫자를 큰따옴표 또는 작은따옴표로 감싸고 있다.
또한 html 태그를 포함할 경우 태그로 인식되어 적용된다.


var js = "javascript";
var num = "111";
var tag = "<p>안녕하세요</p>";




숫자형 데이터 number


var 변수명 = 숫자; 또는 Number("숫자");


숫자형 데이터는 변수에 저장된 값에 숫자만 들어가야 한다.
만약 “100”처럼 따옴표가 감싸고 있다면 숫자형이 아닌 문자형이라고 볼 수 있다. 이런 경우에는 Number(“100”)을 이용하면 문자형을 숫자형으로 바꿀 수 있다.


var i = 1;
var t = Number("100");




논리형 데이터 boolean


var 변수명 = true or false; 또는 Boolean(데이터);


논리형 데이터는 참(true) 또는 거짓(false)이 있다. 이 값은 주로 2개의 데이터를 비교할 때 나오는 결과이다.
예를 들어, ‘100보다 10이 더 크다’는 잘못된 비교이므로 false라는 결과를 반환한다.


var s = true; //변수 s에 데이터 true를 저장함
var t = 10 >= 100; //변수 t에 10>=100의 결과 값 false를 저장함



Boolean() 내장 메서드에 데이터를 입력하면 0과 null, undefined를 제외한 모든 데이터는 true를 반환한다.



var m = Boolean(0); //변수 m에 반환된 데이터 false를 저장함
var k = Boolean("안녕"); //변수 k에 반환된 데이터 true를 저장함




null, undefined 데이터


var s;
var t = null;


undefined는 변수에 아무 값도 등록되어 있지 않는 경우를, null은 변수에 null이 저장되어 있는 경우를 가리킨다.
null은 변수에 저장된 데이터를 비우고자 할 때 사용하는 값이다.




type of


typeof 변수 또는 데이터;


typeof는 지정한 데이터 또는 변수에 저장된 데이터의 형을 알고 싶을 때 사용한다.




var num = 10;
var js = "javascript";

document.write(typeof num, "<br>");
document.write(typeof js, "<br>");






변수를 선언할 때 주의사항


1.변수명의 첫 글자로는 $와 _ 그리고 영문자만 올 수 있다.


var 1num = 10; (X)
var num1 = 10; (O)



2.변수명으로 예약어(document, window등의 이미 javascript에서 사용중인 단어)는 사용할 수 없다.


var document = 1; (X)



3.변수명을 지을 때는 되도록 의미를 부여하는 것이 좋다.


var num = "안녕"; (X)



4.변수명을 사용할 때는 대소문자를 구분해야 한다.


var num = 10;  document.write(Num);    (X)