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 nulles un primitivo, ¿por qué typeof(null)regresa "object"?
¿No significa eso que nullse 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
typeofoperador :fuente
Porque la especificación lo dice .
fuente
typeofle dice nada acerca de si puede o no llamar a métodos en algo.nullyundefined..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
nullreferencia: 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