# JavaScript fun

February 16, 2017    Article    256 words    2 mins read

JavaScript is a fun language that allows you to write crazy AND valid code.

Keep in mind that adding [] converts the expression to a String, for example:

``````[] + [] === ""
``````

Getting true and false is easy, preceding something with ! converts it to Boolean (in our case, false), and negating the whole construct again gives us true.

``````![] === false
!![] === true
``````

Using the same way of thinking, preceding with + converts to Number.

``````+[] === 0
+!+[] === 1
``````

Let’s do some math.

``````+!+[] + +!+[] === 2
+[+!+[] + [+!+[]]] === 11
+[+!+[] + +!+[] + +!+[] + [+!+[]]] === 31
``````

A string can be used as an array of characters by using this notation:

``````"this is a string" === "t"
``````

NaN is easy to get too.

``````+[![]] === NaN
{} + {} === NaN
``````

Also, making multiple digits is simple if we’re concatenating multiple strings, then convert it to a number:

``````+("1" + "2") === 12
``````

Now we can combine stuff and get the letter a:

``````![] === false
![] + [] === "false"
+!![] === 1
------------------------
(![] + [])[+!![]] === "a"  // the same result as "false"
``````

There are cool ways to get all the letters of the alphabet.

Now, what will be the result of the expressions below:

``````{} + []
[] + {}
{} + [] === [] + {}
+{} + []
+{} + +[]
[][[]]
[][[]] + []
[][[]] == [][[]] + []
[][[]] === [][[]] + []
``````

JavaScript is fun, isn’t it?