typeof(NaN) == 'number'
NaN
stands for 'Not a Number'
but as you can see it is a 'number'
nonetheless.
null
is a value that isn't anything.
undefined
is a value that isn't even that.
A variable can be both defined and have a value of undefined at the same time.
boolean("0") = true
boolean("false") = true
+"42" = 42
!!
produces a boolean
All of the above have been taken from the following video tutorial.