O TypeOf é um operador e o resultado que ele retorna ao operando é uma string, com 6 tipos (apenas para ES, não objetos de ambiente de host).
1.'ndendefined '
2.'Boolean '
3. 'String'
4. 'Número'
5.'Object '
6. 'Função'
Por ser um operador em si e não é uma função, não há necessidade de adicionar colchetes ao usá -lo.
A cópia do código é a seguinte:
if (typeof (obj) === 'indefinido') {
// ...
}
TypeOf é usado para julgar os tipos e tem várias armadilhas
1. Retornar nulo é 'objeto', mas você não pode realmente usá -lo como um objeto.
A cópia do código é a seguinte:
var obj = nulo
if (typeof obj === 'objeto') {
obj.a () // um erro é relatado aqui
}
2. O retorno da NAN é o 'número', mas você não pode usá -lo para executar operações aritméticas.
A cópia do código é a seguinte:
var obj = {}
var num = parseint (obj.a)
if (typeof num === 'número') {
num = num + 10 // num ainda é nan após a execução
}
3. Não pode distinguir entre objetos, matrizes e operações regulares, e o 'objeto' retorna para todas as operações.
A cópia do código é a seguinte:
var obj = {}
var arr = []
var reg = /pop /g
console.log (typeof obj) // 'objeto'
console.log (typeof arr) // 'objeto'
console.log (typeof reg) // 'objeto'
4. Versões antes do Safar5 e Chrome7 retornam 'função' a objetos regulares.
Finalmente, a explicação na especificação é publicada