Consulte el libro autorizado "Programación avanzada de JavaScript (tercera edición)" para responder a todos los aspectos: parte del código de autoprueba
El número de tipos es 6 :
Hay
5
tipos de datos simples (también llamados tipos de datos básicos) en
ECMAScript :
Indefinido
,
Nulo
,
Booleano
,
Número
Y
String
. Hay
. 1
Especies tipos de datos complejos -
Objeto
,
Objeto
esencialmente por un conjunto de pares nombre-valor de desordenados.
ECMAScript
No se admite ningún mecanismo para crear tipos personalizados, y todos los valores eventualmente serán uno de los
6
tipos de datos
anteriores . A primera vista, parece que solo hay
6
Este tipo de datos no es suficiente para representar todos los datos; sin embargo, debido a la
naturaleza dinámica del tipo de datos
ECMAScript
, de hecho no está definido
Son necesarios otros tipos de datos.
¿Qué devuelve la función typeof: función de devolución de autoprueba en la versión de Chrome 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"
Estos pocos ejemplos ilustran que el
operando del operador
typeof
puede ser una variable (
mensaje
) o un literal numérico. Nota,
typeof
es un operador en lugar de una función, por lo que, aunque se pueden usar los paréntesis en el ejemplo, no son obligatorios.
A veces, el
operador
typeof
devuelve valores confusos pero técnicamente correctos. Por ejemplo, llame a
typeof null
Devolverá
"objeto"
porque el valor especial
nulo
se considera una referencia de objeto vacía.
Safari 5
y versiones anteriores,
Chrome 7
y versiones posteriores
La versión anterior
devolverá "función" al llamar al operador
typeof
en una expresión regular , mientras que otros navegadores volverán en este caso
"objeto"
。
Desde un punto de vista técnico, una función
es un objeto en
ECMAScript
, no un tipo de datos. Sin embargo, la función también
De hecho, existen algunos atributos especiales, por lo que
es necesario distinguir funciones de otros objetos mediante el operador
typeof
.