DEV Community

Cover image for You won't be able to answer this simple JavaScript question!
Sadeedpv🥇
Sadeedpv🥇

Posted on Edited on

You won't be able to answer this simple JavaScript question!

Last night, I was scrolling through twitter and I found a interesting JavaScript question, and I bet you won't be able to answer this without cheating.

Let's see how long would would it take for you to answer this one:

What does ("b" + "a" + + "a" + "a").toLowerCase() output in JavaScript?

The question does look simple, but the answer will definitely blow your mind.

Tell me how long it took you to answer in the comments.

And Yes, JavaScript is crazy!

Top comments (30)

Collapse
 
unfor19 profile image
Meir Gabay •

I wanted to see if ChatGPT will get it right.. And it did :)

The NaN part is very interesting, as one of the "a" chars is dropped, initially, I didn't understand why it's not "bananaa" (extra "a"), now I get it 💪🏻

Image description

Collapse
 
vsaulis profile image
Vladas Saulis •

banana

Collapse
 
bob4262 profile image
Bob dnaeil •

What!! No wayy, how is it banana

Collapse
 
bob4262 profile image
Bob dnaeil •

Where does the n come from??

Thread Thread
 
jonrandy profile image
Jon Randy 🎖️ •

Unary plus on "a" gives you NaN

Collapse
 
equiman profile image
Camilo Martinez •

Now try console.log(new Array(4).join(Number('y tho') + 'a')+' Batman!') 🦇

Collapse
 
sadeedpv profile image
Sadeedpv🥇 •

NaNaNaNaNaNa batman! is that the desired output or am I missing something? 🤔

Collapse
 
equiman profile image
Camilo Martinez •

Yes, maybe for people from my generation 😅.

Now I think this joke is too old 👴

Collapse
 
skyops117 profile image
SkyHops • • Edited

"baaa"

Collapse
 
sadeedpv profile image
Sadeedpv🥇 •

Its actually banana, basically the unary plus(++) of 'a' gives NaN which gives us 'baNaNa' and convert it to lowercase => banana

Collapse
 
skyops117 profile image
SkyHops • • Edited

Do you need

"use strict" 
Enter fullscreen mode Exit fullscreen mode

at the top of the script 🤔
I used an online Javascript console.

Thread Thread
 
sadeedpv profile image
Sadeedpv🥇 •

Try this code :

console.log(("b" + "a" + + "a" + "a").toLowerCase());
Enter fullscreen mode Exit fullscreen mode
Thread Thread
 
skyops117 profile image
SkyHops •

Thank you; my mistake.
I didn't see the ++.
For my defence on my phone it red:

("b" + "a" +
 + "a" + "a").toLowerCase()
Enter fullscreen mode Exit fullscreen mode
Collapse
 
chrdek profile image
chrdek •

yep, that' s what it does.

Collapse
 
lexlohr profile image
Alex Lohr •

NaN is actually part of IEEE 754, which is used in most languages to express floating point numbers.

Collapse
 
kweisvee profile image
Chrissy Vinco •

Okay the person who thought of this problem is soooo clever

Collapse
 
shiyulong11 profile image
Dragon •

JavaScript is really a magical language

Collapse
 
vsaulis profile image
Vladas Saulis •

when it gets to insane questions...

Collapse
 
khair_al_anam profile image
Khair Alanam •

That's honestly cool.

baNaNa

Collapse
 
sadeedpv profile image
Sadeedpv🥇 •

and weird

Collapse
 
overflow profile image
overFlow •

now i see why typeScript and them exist.
obviously it is string :"b"+string :"a"+NaN+string :"a".
Do not ask me about the last string :"a".
let us say it is your homework.

Collapse
 
codeystein profile image
codeyStein •

It's the little things that makes javascirpt so annoying :)