Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

225
Vistas
¿Por qué Number([]) devuelve 0 mientras que Number({}) devuelve NaN?

En mi opinión, el constructor de números llamará a String([]) por lo que Number([]) es igual a Number("") . Entonces devuelve 0. Además, el constructor de números llamará a String({}) por lo que Number({}) es igual a Number("[object Object]") . Entonces devuelve NaN. Pero no estoy seguro.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Sí tienes razón.

El constructor Number llamará a ToNumeric en su argumento, que luego llama a ToNumber en él, que llama a ToPrimitive en el objeto con una pista de número, lo que da como resultado que se llame a OrdinaryToPrimitive , lo que no

 1. If hint is string, then a. Let methodNames be « "toString", "valueOf" ». 2. Else, a. Let methodNames be « "valueOf", "toString" ». 3. For each element name of methodNames, do a. Let method be ? Get(O, name). b. If IsCallable(method) is true, then i. Let result be ? Call(method, O). ii. If Type(result) is not Object, return result.

La sugerencia es number , por lo que los nombres de los métodos llamados son primero valueOf y luego (si no existe) toString .

valueOf devuelve el objeto en sí mismo en el caso de un objeto simple, y la matriz en sí misma en el caso de una matriz, por lo que no es de ayuda: pasa a toString .

Array.prototype.toString devuelve los valores de matriz unidos: arr.toString() es equivalente a arr.join(',') . La matriz vacía se une a la cadena vacía. Asi que

 Number([])

se convierte en

 Number('')

y así la cadena vacía se convierte en 0.

Pero los objetos, cuando se les llama toString , dan [object Object]

 console.log({}.toString());

que no se puede convertir en un número, por lo tanto, NaN.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda