본문 바로가기

Javascript

자바스크립트 변수 선언 및 기본 데이터 타입

1. 변수 선언

자바스크립트는 var라는 키워드 하나로 변수를 선언합니다. 


var a = 10;


var를 사용하지 않고도 변수를 선언할 수 있지만, 그런 경우 전역 네임스페이스 (Global Namespace)를 오염시키기 때문에 사용하지 않아야 합니다. 원래는 웹페이지 유효성 검사처럼 단순하게 쓰일 목적으로 만들어져서, 가능하지만 하지 않는 것이 좋은 것들이 꽤 많으며 이것도 그 중 하나이니 변수는 반드시 var 키워드를 써서 선언하도록 합니다. 


여러개의 변수를 동시에 선언할 때는 아래처럼 var 하나에 ,로 변수들을 분리하는 것이 좋습니다.


var a = 10,

x = 0.5,

s = "string";


console.log(a);   // 10

console.log(x);   // 0.5

console.log(s);   // string


위의 코드를 테스트 하기 위해서는 크롬 브라우저(https://www.google.com/chrome/)의 아무 창에서 Ctrl + Shift + I 또는 F12를 눌러 개발자 도구를 실행시킨 후 Console 창에서 테스트 하면 됩니다.



자바스크립트 변수는 알파벳 대/소문자, 숫자, _, $를 사용할 수 있고, 대/소문자, _, $로 시작할 수 있습니다만 가급적 대/소문자로만 시작하는 것이 좋습니다. 그리고, 자바스크립트의 키워드는 변수명으로 사용할 수 없습니다.


2. 기본 데이터 타입

자바스크립트의 기본 데이터 타입은 숫자, 문자열, 불린값, undefined, null 다섯개가 있으며 그 외는 전부 객체 (배열, 함수 포함) 입니다.


1) 숫자 (Number)

자바스크립트의 숫자는 64비트 부동 소수점 형태로 저장되며 이는 자바의 double과 동일합니다. 

즉, 자바나 다른 언어의 int, float 등의 구분은 존재하지 않으며 typeof 연산자로 보면 number를 출력합니다.


var i = 1, f = 1.0;


console.log(typeof i);  // number

console.log(typeof f);  // number


2) 문자열 (String)

문자열은 작은 따옴표('), 큰 다옴표(")로 감싸서 표시할 수 있습니다.


var str1 = 'hello';

var str2 = "world";


console.log(str1);   // hello

console.log(str2);   // world


문자열 안에 작은 따옴표나 큰 따옴표가 들어가는 경우 그 반대의 따옴표로 감쌀 수 있습니다.


var str3 = 'It is "something" you have to know.';


console.log(str3);   // It is "something" you have to know.


또는 \ 이스케이프 문자를 써서 따옴표를 표시할 수도 있습니다.


var str4 = "single quotation is \', double quotation is \"";


console.log(str4);   // single quotation is ', double quotation is "


\를 표시하기 위해서는 \\를 사용하면 됩니다.


3) 불린값 (Boolean)

자바스크립트에서 참, 거짓을 나타내기 위해 true, false를 사용합니다.


false 외에 0, -0, "", '', NaN, null, undefined 값만 false를 의미하며 나머지는 전부 true 입니다.


4) undefined

undefined는 선언만 하고 값을 지정하지 않은 경우의 값입니다. 또는 선언하지도 않은 변수의 typeof도 undefined 입니다.


var udf;


console.log(udf);   // undefined

console.log(typeof udf);   // undefined


5) null

null은 명시적으로 값이 비었음을 나타낼 때 사용합니다. 하지만, null을 할당한 변수의 typeof는 object 입니다.


var n = null;


console.log(n);  // null

console.log(typeof n);  // object