TypeOF является оператором, и результатом, который он возвращает операнд, является строка, с 6 типами (только для ES, а не объектов среды хоста).
1.'ndefined '
2.'boolean '
3.'string '
4.'number '
5.'object '
6.'ffination '
Поскольку это сам оператор, и это не функция, нет необходимости добавлять кронштейны при его использовании.
Кода -копия выглядит следующим образом:
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 (typeof num === 'number') {
num = num + 10 // num по -прежнему остается NAN после выполнения
}
3. Он не может различать объекты, массивы и регулярные операции и возвращает «объект» для всех операций.
Кода -копия выглядит следующим образом:
var obj = {}
var arr = []
var reg = /pop /g
console.log (typeof obj) // 'объект'
console.log (typeof arr) // 'объект'
console.log (typeof reg) // 'объект'
4. Версии перед SAFAR5 и Chrome7 возвращают функцию «к обычным объектам».
Наконец, объяснение в спецификации опубликовано