Estoy leyendo 'Capítulo 4 de JavaScript profesional para desarrolladores web' y me dice que los cinco tipos de primitivas son: indefinido, nulo, booleano, número y cadena.
Si null
es un primitivo, ¿por qué typeof(null)
regresa "object"
?
¿No significa eso que null
se pasa por referencia (supongo que aquí todos los objetos se pasan por referencia), por lo que NO es primitivo?
javascript
primitive
thetrystero
fuente
fuente
Respuestas:
Desde la página MDN sobre el comportamiento del
typeof
operador :fuente
Porque la especificación lo dice .
fuente
typeof
le dice nada acerca de si puede o no llamar a métodos en algo.null
yundefined
..
o[ ]
).Como se ha señalado, la especificación lo dice. Pero dado que la implementación de JavaScript es anterior a la escritura de la especificación ECMAScript, y la especificación tuvo cuidado de no corregir las debilidades de la implementación inicial, todavía hay una pregunta legítima sobre por qué se hizo de esta manera en primer lugar. Douglas Crockford lo llama un error . Kiro Risk cree que tiene sentido :
fuente
Del libro YDKJS
fuente
en resumen: es un error en ECMAScript, y el tipo debería ser
null
referencia: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null
fuente
En JavaScript nulo es "nada". Se supone que es algo que no existe. Desafortunadamente, en JavaScript, el tipo de datos nulo es un objeto. Puede considerarlo un error en JavaScript que typeof null es un objeto. Debería ser nulo.
fuente
En JavaScript, typeof null es 'objeto', lo que sugiere incorrectamente que nulo es un objeto. Este es un error y uno que desafortunadamente no se puede solucionar, porque rompería el código existente.
fuente
para las personas que están interesadas en algún código que hizo este comportamiento, este es el enlace para ustedes, muchachos ... por qué typeof null es un objeto con la implicación
fuente