Consulte o livro oficial "JavaScript Advanced Programming (3rd Edition)" para responder a todos os aspectos: parte do código de autoteste
O número de tipos é 6 :
Existem
5
tipos de dados simples (também chamados de tipos de dados básicos) no
ECMAScript :
Undefined
,
Null
,
Boolean
,
Number
And
String
. Lá
. 1
Tipos de dados complexos da espécie -
Objeto
,
Objeto
essencialmente por um conjunto de pares nome-valor de não ordenado.
ECMAScript
Nenhum mecanismo para a criação de tipos personalizados é suportado e todos os valores serão, eventualmente, um dos
6
tipos de dados
acima . À primeira vista, parece que existem apenas
6
Este tipo de dados não é suficiente para representar todos os dados; no entanto, devido à
natureza dinâmica do tipo de dados
ECMAScript
, ele de fato não está definido
Outros tipos de dados são necessários.
O que retorna a função typeof: o autoteste retorna a função no Chrome versão 84.0.4147.89
var f=()=>2;
//undefined
typeof f
//"function"
var message = "some string";
alert(typeof message); // "string"
alert(typeof(message)); // "string"
alert(typeof 95); // "number"
Esses poucos exemplos ilustram que o
operando do operador
typeof
pode ser uma variável (
mensagem
) ou um literal numérico. Nota,
typeof
é um operador em vez de uma função, portanto, embora os parênteses no exemplo possam ser usados, eles não são obrigatórios.
Às vezes, o
operador
typeof
retorna alguns valores confusos, mas tecnicamente corretos. Por exemplo, chame
typeof null
Retornará
"objeto"
porque o valor especial
null
é considerado uma referência de objeto vazia.
Safari 5
e anterior,
Chrome 7
e posterior
A versão anterior
retornará "função" ao chamar o operador
typeof
em uma expressão regular , enquanto outros navegadores retornarão neste caso
"objeto"
。
Do ponto de vista técnico, uma função
é um objeto no
ECMAScript
, não um tipo de dados. No entanto, a função também
De fato, existem alguns atributos especiais, portanto,
é necessário distinguir funções de outros objetos por meio do operador
typeof
.