Typeof는 연산자이며 결과는 피연산자로 반환됩니다. 6 가지 유형 (호스트 환경 객체가 아닌 ES의 경우에만)입니다.
1. 정의 된 ''
2. 'Boolean'
3. '스트링'
4. 'number'
5. 'object'
6. '기능'
연산자 자체이고 기능이 아니기 때문에 사용할 때 브래킷을 추가 할 필요가 없습니다.
코드 사본은 다음과 같습니다.
if (typeof (obj) === 'undefined') {
// ...
}
Typeof는 유형을 판단하는 데 사용되며 몇 가지 함정이 있습니다.
1. Null을 반환하는 것은 '개체'이지만 실제로 객체로 사용할 수는 없습니다.
코드 사본은 다음과 같습니다.
var obj = null
if (typeof obj === 'Object') {
obj.a () // 오류가 여기에보고됩니다
}
2. 반환 NAN은 '번호'이지만 산술 작업을 수행하는 데 사용할 수는 없습니다.
코드 사본은 다음과 같습니다.
var obj = {}
var num = parseint (obj.a)
if (num === '번호') {
num = num + 10 // num은 여전히 실행 후 NAN입니다.
}
3. 객체, 어레이 및 일반 작업을 구별 할 수는 없으며 모든 작업에 대해 '객체'를 반환 할 수 없습니다.
코드 사본은 다음과 같습니다.
var obj = {}
var arr = []
var reg = /pop /g
console.log (typeof obj) // 'Object'
Console.log (Typeof Arr) // 'Object'
console.log (typeof reg) // 'object'
4. Safar5와 Chrome7 이전의 버전은 일반 객체로 '함수'를 반환합니다.
마지막으로 사양의 설명이 게시됩니다