Mauricio Garcia
2 min readMar 14, 2022

--

Hola,

Muchas gracias por escribirme, de hecho tu definición o lo que has entendido es correcto... de hecho entiendo perfectamente tu confusión, quizás yo no me haya explicado bien del todo... veamos si puedo explicarlo mejor, o entiendas lo que quiero transmitir:

La esencia de JS son los objetos, ya que cada uno de ellos tiene o mantiene un enlace a otro objeto llamado prototype, es decir Array.prototype, Object.prototype, String.prototype...

Si bien como mencionas los primitivos NO son objetos, ya que NO cuentan con métodos propios y no tienen directamente su prototype (esta es la palabra clave), es decir, SI pueden ser tratados como objetos envolviéndolos con sus pares globales (String, Number, Boolean, etc) , los únicos que no tienen: null y undefined.

Veamos, el siguiente ejemplo:

let num = 100;

console.log(b.valueOf()); //output 100

Si te das cuenta num es de tipo numérico, y la regla dice que NO cuenta con métodos propios y NO tiene prototype, pero JS internamente lo trata como un objeto (Number), por eso digo que todo en JS es un objeto, por que al final JS va tratar TODO como un objeto.

Si bien es bastante acertada tu observación de que aquí entra la "coerción", no quise tocarlo de esa manera ya que mi intención era no saturar con muchos conceptos, y por eso ocupe la palabra "tratar"... de hecho si sigues leyendo todas las historias que escribo, vas a llegar a (JavaScript — Coerción, coacción explícita e implícita, Truth, Equality & Operators, y ecuaciones complejas…):

https://mauriciogc.medium.com/javascript-ecuaciones-complejas-440578bcfad7

Que es donde explico ahora si a profundidad el cómo y por qué se comportan los tipos de datos de JS.

Mi idea es que vayas leyendo el siguiente y el siguiente y sea lo más amigable posible :)

Off topic: De hecho en algunos ejemplos podrás ver que uso var, y muchos me han preguntado que por que no let y const...y siempre les digo que hasta ese punto no se los he explicado, ya mas adelante cuando hablo de "scope" ahí lo menciono, ya una vez que explicado el por que, ya lo ocupo.

Saludos y gracias por tus observaciones!!

--

--

Responses (1)