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

146
Views
¿Por qué la conversión de tipo para [] y !![] no devuelve el mismo resultado?

¿Por qué la conversión de tipo para [] y !![] no devuelve el mismo resultado?

 console.log([] == false); // true console.log(!![] == false); // false

about 4 years ago · Santiago Gelvez
1 answers
Answer question

0

Para la primera salida: https://262.ecma-international.org/5.1/#sec-11.9.3

[] == false se evalúa como ToPrimitive([]) == ToNumber(false) que es ToNumber([]) == ToNumber(false) y finalmente 0 == 0 .

La cadena de conversión paso a paso:

Empezamos con [] == false .

Paso 1:

  1. Si Type(y) es booleano, devuelve el resultado de la comparación x == ToNumber(y).

Ahora, tenemos [] == 0 .

Paso 2:

  1. Si Type(x) es Object y Type(y) es String o Number, devuelva el resultado de la comparación ToPrimitive(x) == y.

Algunos ejemplos de esta cadena de conversión:

 console.log(Number([])); console.log(Number(false)); console.log([0] == false); console.log(['0'] == false); console.log([1] == true); console.log(['1'] == true); console.log(['0'] == 0); console.log([1] == '1'); console.log([1,2,3] == '1,2,3');

Para la segunda salida: una matriz (incluso vacía) es verdad . ![] devuelve falso. !false devuelve true .

Algunos ejemplos:

 console.log(Boolean([])); console.log(![]); console.log(!![]);

about 4 years ago · Santiago Gelvez 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!