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

183
Views
¿Por qué el resultado de ('b'+'a'+ + 'a' + 'a').toLowerCase() es 'banana'?

Estaba practicando JavaScript cuando uno de mis amigos encontró este código JavaScript:

 document.write(('b' + 'a' + + 'a' + 'a').toLowerCase());

¡El código anterior responde "banana" ! ¿Alguien puede explicar por qué?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

+'a' se resuelve en NaN ("No es un número") porque convierte una cadena en un número, mientras que el carácter a no se puede analizar como un número.

 document.write(+'a');
En minúsculas se convierte en banana .

Agregar NaN a "ba" convierte NaN en la cadena "NaN" debido a la conversión de tipo, da baNaN . Y luego hay una a detrás, dando baNaNa .

El espacio entre + + es para hacer que la primera concatenación de una cadena y la segunda un operador unario más (es decir, "positivo"). Tienes el mismo resultado si usas 'ba'+(+'a')+'a' , resuelto como 'ba'+NaN+'a' , que es equivalente a 'ba'+'NaN'+'a' debido para escribir malabares.

 document.write('ba'+(+'a')+'a');

over 4 years ago · Santiago Trujillo Report

0

'b' + 'a' + + 'a' + 'a'

...se evalúa como....

 'b' + 'a' + (+'a') + 'a'

(ver: precedencia de operadores )

(+'a') intenta convertir 'a' en un número usando el operador más unario . Como 'a' no es un número, el resultado es NaN ( "No es un número" ):

 'b' + 'a' + NaN + 'a'

Aunque NaN significa "No es un número", sigue siendo un tipo numérico; cuando se agrega a cadenas, se concatena como lo haría cualquier otro número:

 'b' + 'a' + NaN + 'a' => 'baNaNa'

Por último, está en minúsculas:

 'baNaNa'.toLowerCase() => 'banana'
over 4 years ago · Santiago Trujillo Report

0

('b' + 'a' + + 'a' + 'a').toLowerCase()

Para mayor claridad, dividamos esto en dos pasos. Primero, obtenemos el valor de la expresión entre paréntesis y luego aplicamos la función toLowerCase() al resultado.

Paso uno

 'b' + 'a' + + 'a' + 'a'

Yendo LR , tenemos:

  • 'b' + 'a' devuelve ba , esta es una concatenación regular.
  • ba + + 'a' intenta concatenar ba con + 'a' . Sin embargo, dado que el operador unario + intenta convertir su operando en un número, se devuelve el valor NaN , que luego se convierte en una cadena cuando se concatena con el ba original, lo que da como resultado baNaN .
  • baNaN + 'a' devuelve baNaNa . Nuevamente, esta es una concatenación regular.

En esta etapa, el resultado del primer paso es baNaNa .

Segundo paso

Aplicar .toLowerCase() en el valor devuelto del paso uno da:

Plátano

Hay muchos juegos de palabras similares en JavaScript que puedes consultar.

over 4 years ago · Santiago Trujillo 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!