Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

228
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!