반응형
1. typeof 연산자
typeof연산자는 피연산자의 데이터 타입을 문자열로 반환한다
반환값 : string
, number
, boolean
, undefined
, symbol
, object
, function
null을 반환하는 경우는 없으며, 함수의 경우 function을 반환한다.
typeof '' // -> string
typeof 1 // -> number
typeof NaN // -> number
typeof true // -> boolean
typeof null // -> object
typeof [] // -> object
typeof {} // -> object
typeof new Date() // -> object
typeof /test/gi // -> object // (정규식)
typeof.. 믿을 수 있는 거 맞아? 라고 생각할 수도 있지만, javascript를 이루고 있는 거의 모든 것은 객체이기에 언어 자체를 생각해봤을 때는 맞는 정답이다.
그러나 null 값을 연산하면 object를 반환한다는 것은 자바스크립트의 첫 번째 버전의 버그다
기존 코드에 영향을 줄 수 있기 때문에 수정되지 못하는 버그라고 한다.
참 재밌는 언어야 (❤´艸`❤)
따라서 값이 null 타입인지 확인할 때는 typeof 연산자를 사용하지 말고 일치 연산자(===)를 사용하자<관련 내용 : 동등/일치 비교 연산자>
또 주의할 내용은, 선언하지 않은 식별자에 typeof 사용 시 ReferenceError가 발생하지 않고 undefined를 반환한다<관련 내용 : 변수와 값의 재할당>
반응형
'✍ 공부 > JavaScript' 카테고리의 다른 글
[ 모던 자바스크립트 Deep Dive ] 반복문 + 레이블문 (0) | 2022.12.26 |
---|---|
[ 모던 자바스크립트 Deep Dive ] switch 문 (0) | 2022.12.26 |
[ 모던 자바스크립트 Deep Dive ] 쉼표 연산자 (0) | 2022.12.25 |
[ 모던 자바스크립트 Deep Dive ] 동등/일치 비교 연산자 (0) | 2022.12.25 |
[ 모던 자바스크립트 Deep Dive ] 변수와 값의 재할당 (0) | 2022.12.25 |