1. 동적 타입
자바스크립트는 느슨한 타입의 동적 언어이다. 즉, 모든 타입의 값으로 (재)할당이 가능하다.
2. 자바스크립트의 타입
구분 | 데이터 타입 | 설명 |
원시 타입 | 숫자(number) 타입 | - 정수와 실수 구분 없이 하나의 숫자 타입만 존재한다. (모두 실수로 처리) - 추가적으로 Infinity: 양의 무한대 / -Infinity: 음의 무한대 / NaN: 산술 연산 불가(Not A Number) 라는 세 가지 특별한 값을 표현할 수 있다. |
문자열(string) 타입 | - 작은따옴표(' '), 큰따옴표(" "), 백틱(` `)으로 텍스트를 감싸 표현한다. - 일반 문자열 내에서 줄바꿈 등의 공백을 표현하려면 백슬래시(\)로 시작하는 이스케이프 시퀀스를 사용해야 한다. ex. 줄바꿈 (\n) cf. ES6에서 추가된 백틱(` `)을 사용하는 템플릿 리터럴 내에서는 이스케이프 시퀀스를 사용하지 않고도 줄바꿈을 표현할 수 있다. |
|
불리언(boolean) 타입 | 논리적 참(true)과 거짓(false) |
|
undefined 타입 | var 키워드로 선언된 변수에 암묵적으로 할당되는 값이다. |
|
null 타입 | 값이 없다는 것을 의도적으로 명시할 때 사용하는 값이다. |
|
심벌(symbol) 타입 | - ES6에서 추가된 7번째 타입 - 다른 값과 중복되지 않는 유일무이한 값이다. |
|
객체 타입 | 객체, 함수, 배열 등 |
- 원시 타입: 변경 불가능한 값. 원시 값을 할당한 변수는 원시 값 자체를 값으로 갖는다.
- 객체(참조) 타입: 변경 가능한 값. 객체를 할당한 변수는 생성된 객체가 저장된 메모리 공간의 주소를 값으로 갖는다.
3. typeof 연산자
: 연산자 뒤에 위치한 피연산자의 데이터 타입을 문자열로 반환한다.
→ 7가지 ('number', 'string', 'boolean', 'undefined', 'symbol', 'object', 'function') 로 반환.
// 사용 예시
var foo;
console.log(typeof foo); // 'undefined'
foo = 3;
console.log(typeof foo); // 'number'
foo = 'Hello';
console.log(typeof foo); // 'string'
foo = true;
console.log(typeof foo); // 'boolean'
foo = null;
console.log(typeof foo); // 'object'
foo = Symbol();
console.log(typeof foo); // 'symbol'
foo = {};
console.log(typeof foo); // 'object'
foo = [];
console.log(typeof foo) // 'object'
foo = function() {};
console.log(typeof foo) // 'function'
※ typeof 연산자로 null 값을 연산하면 "object"를 반환한다. 이것은 자바스크립트 첫 번째 버전의 버그인데, 기존 코드에 영향을 줄 수 있어 수정되지 못했다. 그러므로 null 값의 타입을 확인할 때는 일치 연산자(===)를 이용해야 한다.
※ typeof 연산자로 배열 값을 연산했을 때 역시 "object"를 반환한다. 배열은 객체의 특수한 한 형태이기 때문이다. 그러므로 배열인지 판별하기 위해서는 isArray라는 배열 메서드를 이용해야 한다.
// 구문
Array.isArray(obj);
// obj : 검사할 객체
// 반환값 -> true / false
// 사용 예시
Array.isArray([1, 2, 3]); // true
Array.isArray({ foo: 123 }); // false
[참고 자료 1] 모던 자바스트립트 Deep Dive <6장 데이터 타입>
[참고 자료 2] mdn 문서 (https://developer.mozilla.org/ko/docs/Web/JavaScript/Data_structures)
JavaScript의 타입과 자료구조 - JavaScript | MDN
모든 프로그래밍 언어에는 내장된 자료구조가 존재하지만 보통 그 내용은 언어마다 다릅니다. 이 글에서는 JavaScript에서 사용할 수 있는 내장 자료구조와 그 속성에 대해 알아보겠습니다. 그러
developer.mozilla.org
typeof (https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/typeof)
typeof - JavaScript | MDN
typeof 연산자는 피연산자의 평가 전 자료형을 나타내는 문자열을 반환합니다.
developer.mozilla.org
Array.isArray() (https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)
Array.isArray() - JavaScript | MDN
Array.isArray() 메서드는 인자가 Array인지 판별합니다.
developer.mozilla.org
'JavaScript' 카테고리의 다른 글
정수를 반환하는 메서드 (0) | 2023.04.15 |
---|---|
노마드 코더 바닐라JS로 크롬 앱 만들기 후기 (11.21~12.04 챌린지 졸업) (0) | 2022.12.27 |
노마드 코더 바닐라JS로 크롬 앱 만들기 복습용 정리(4) (0) | 2022.12.05 |
노마드 코더 바닐라JS로 크롬 앱 만들기 복습용 정리(3) (0) | 2022.12.01 |
노마드 코더 바닐라JS로 크롬 앱 만들기 복습용 정리(2) (0) | 2022.11.25 |
댓글