2018-07-24 06:17:07 +00:00
|
|
|
// Nothing is weird here, if you think a little bit more about it
|
2017-06-11 14:00:29 +00:00
|
|
|
// but it seems to be
|
|
|
|
|
|
|
|
// Null is an Object
|
|
|
|
typeof null // => 'object'
|
|
|
|
|
|
|
|
// Despite this, null is not an instance of an Object
|
|
|
|
null instanceof Object // => false
|
|
|
|
|
|
|
|
// "string" is not an instance of String
|
|
|
|
"string" instanceof String
|
|
|
|
|
|
|
|
// NaN is a number
|
|
|
|
typeof NaN // -> 'Number'
|
|
|
|
|
|
|
|
// NaN is not considered equal to itself
|
|
|
|
NaN === NaN // -> false
|
|
|
|
|
|
|
|
// Array With No Keys == False
|
|
|
|
new Array() == false // -> true
|
|
|
|
|
|
|
|
// big integer numbers
|
|
|
|
9999999999999999 // -> 10000000000000000
|
|
|
|
|
|
|
|
//
|
|
|
|
[]+[] // -> ""
|
|
|
|
[]+{} // -> "[object Object]"
|
|
|
|
{}+[] // -> "{}+[]"
|
|
|
|
{}+{} // -> NaN
|
|
|
|
|
|
|
|
// Comparisons
|
|
|
|
3>2>1 // -> false
|
|
|
|
|
|
|
|
// Boolean arithmetic
|
|
|
|
true+true===2 // -> true
|
|
|
|
true-true===0 // -> true
|
|
|
|
true===1 // -> false
|
|
|
|
|
|
|
|
// Something really strange
|
|
|
|
(!+[]+[]+![]).length // -> 9
|
|
|
|
// because:
|
|
|
|
// +[] -> 0
|
|
|
|
// !+[] -> true
|
|
|
|
// !+[]+[] -> 'true'
|
|
|
|
// etc.
|
|
|
|
|