Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

234
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda