티스토리 뷰
typeof 연산자
지금까지 계속해서 자바스크립트의 데이터 타입에 대해서 살펴보고 있는데요. 우리가 사용하는 값이 어떤 데이터 타입을 가지고 있는지 확인하려면 typeof 연산자를 사용해야 합니다. typeof 연산자는 키워드 다음에 공백(띄어쓰기)을 두고 값을 작성해도 되고, 함수를 사용하듯 괄호로 감싸서 사용할 수도 있는데요.
typeof 'Codeit'; // string
typeof Symbol(); // symbol
typeof {}; // object
typeof []; // object
typeof true; // boolean
typeof(false); // boolean
typeof(123); // number
typeof(NaN); // number
typeof(456n); // bigint
typeof(undefined); // undefined
하지만 한 가지 주의해야 할 점은 typeof 연산자의 결과가 모든 타입과 1:1로 매칭되지 않는다는 점입니다.
null이 object라고?
일단, typeof null을 하면 문자열 null이 리턴되는 게 아니라 문자열 object가 리턴되는데요.
typeof null; // object
이건 자바스크립트가 처음 구현될 때의 특별한 문법 설계 때문입니다. 나중에 ECMAScript에서 수정이 제안되었었지만, 이미 개발된 많은 프로젝트에 버그가 생기는 우려로 인해 반영되지 않고 있습니다.
function?
그리고 함수에 typeof 연산자를 사용하면 function이라는 값을 리턴하는데요.
function sayHi() {
console.log('Hi!?');
}
typeof sayHi; // function
자바스크립트에서 함수는 객체로 취급됩니다. 그래서 간혹 object를 리턴할거라 예상하는 실수를 하기도 하는데요. typeof 연산자를 함수에 사용하면 function이 리턴된다는 점도 꼭 기억해 두시면 좋을 것 같습니다.
'프론트엔드 > JavaScript' 카테고리의 다른 글
[자바스크립트의 동작 원리] 07. AND와 OR의 연산 방식 (0) | 2022.12.24 |
---|---|
[자바스크립트의 동작 원리] 05. 불린인 듯 불린 아닌 불린같은 값 (0) | 2022.12.24 |
[자바스크립트의 동작 원리] 01. 데이터 타입의 특징과 종류 + Symbol, BigInt (0) | 2022.12.24 |
[모던 자바스크립트 이해하기] 모던 자바스크립트 & ECMAScript (0) | 2022.12.24 |
[다양한 이벤트 알아보기] 13. 종합 정리 (1) | 2022.12.24 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- redux thunk
- foreach
- null
- redux-middleware
- redux-thunk
- 얕은복사
- 참조형 데이터
- map
- find
- some
- EVERY
- undefined
- 느슨한 타입(loosely typed)
- 타입변환
- redux
- 기본형 데이터
- 동적(dynamic) 언어
- redux middleware
- filter
- 비교 연산자
- 불변 객체
- findindex
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함