[자바스크립트에서 자료형의 의미]
자료형(data type)은 프로그래밍 언어로 조작할 수 있는 값의 유형을 나타냅니다.
숫자나 문자열처럼 프로그램에서 처리할 자료의 유형을 지정해야 하는데, 이러한 자료의 형태를 '자료형'이라고 합니다.
자바스크립트의 자료형으로는 숫자,문자,논리형(불린),객체,심벌, 널(Null), 미정의(Undefined) 값이 있습니다.
원시 유형은 하나의 값만 지정할 수 있습니다. 원시 유형 외에는 전부 객체입니다.
자료형
문자열: 큰따옴표나 작은 따옴표 모두 앞뒤에 붙는 따옴표는 같아야 합니다. String()은 숫자를 문자열로 변환하는 함수입니다.문자열 자료형은 자바스크립트 내의 텍스트를 표현하며, 문자열은 유니코드 문자의 나열입니다.
typeof("안녕하세요") // 'string'
typeof("10") // 'string'
typeof("") // 'string', 빈 문자열
숫자형: 모든 프로그램에서 가장 기본이 되는 자료형입니다. 자바스크립트에서는 정수와 실수를 함께 묶어서 '숫자형'이라고 합니다. 큰따옴표가 없이 입력하면 숫자로 인식합니다. 숫자도 따옴표로 묶으면 문자열로 인식합니다.
typeof(10) // 'number'
typeof("10") // 'string'
typeof(3.145) // 'number'
논리형: 논리형은 참이나 거짓 값을 표현하기 위한 데이터 유형이로 불린 이라고도 불립니다. 논리형 값은 지정한 조건에 맞는지의 여부를 확인하는 조건식에서 많이 사용합니다.
10 > 2 // true
1 > 39030404309 // false
심볼: 심볼은 Symbol 함수를 호출함으로써 생성할 수 있습니다. 이때 생성되는 심볼은 변경이 불가능한 원시 값입니다. Symbol 함수를 호출할 때 인자로 전달하는 문자열 값은 생성될 심볼에 대한 일종의 설명문(Description)으로, 오직 디버깅의 용도로만 사용됩니다. 즉, 뒤에서 설명할 심볼의 키와는 완전히 다른 것으로, console.log() 등을 이용한 디버깅 시에 각 심볼을 구분하기 위한 용도로 사용이 됩니다.
let var1 = Symbol()
let var2 = Symbol()
var === var2 // false
undefined: undefined는 ‘아무 값도 할당받지 않은 상태’를 의미합니다.
var 키워드로 선언한 변수는 암묵적으로 undefined로 초기화됩니다.
변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이뤄질 때까지 빈 상태로 내버려두지 않고 자바스크립트 엔진이 undefined로 초기화합니다.
따라서 변수를 선언한 이후 값을 할당하지 않은 변수를 참조하면 undefined가 반환됩니다.
변수를 참조했을 때 undefined가 반환된다면 선언 이후 값이 할당되지 않은 즉, 초기화되지 않은 변수라는 것을 알 수 있습니다.
var a;
console.log(a); // undefined
console.log(typeof a); // undefined
null: 자바스크립트는 대소문자를 구분하므로 null은 Null, NULL 등과는 다릅니다.
null은 ‘비어있는, 존재하지 않는 값'(값의 부재)을 의미합니다.
프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시(의도적 부재)할 때 사용합니다.
변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미입니다.
var element = document.querySelector('.myClass');
// HTML 문서에 myClass 클래스를 가진 요소가 없다면 null을 반환한다.
console.log(element); // null