This JavaScript expression relies on some quirky type coercion behaviors. Let's break it down step by step:
-
!+[]
:+[]
attempts to convert the empty array to a number. This results in0
. The!
(logical NOT) then converts0
totrue
. -
!![]
: Similar to above,[]
becomes0
, the first!
makes ittrue
, and the second!
makes itfalse
.
Therefore, the expression becomes:
true + false + false + false + false + false
JavaScript converts true
to 1
and false
to 0
when doing addition. So, the final result is:
1 + 0 + 0 + 0 + 0 + 0
Which equals 1
.