boolean.coffee
# In Coffee Script
# `is` will be converted to `===`
# `==` will be converted to `===`
#
# Important thing in JavaScript
# undefined is not null
# http://d.hatena.ne.jp/nishiohirokazu/20120316/1331906887
# "今彼氏がいないのと、生まれてからずっと彼氏がいないのは別じゃない?"
# String vs String
"string" is "string" # => true
"string" is new String("string") # => false
# Array vs Array
[1..2] is [1..2] # => false
# Object vs Object
{a: 1} is {a: 1} # => false
# String vs Number
# In JavaScript "0" == 0 returns true
"0" is 0 # => false
# Empty string vs Boolean
# In JavaScript "" == false
"" is false # => false
"" is true # => false
# Number vs Boolean
# In JavaScript 0 == false returns true
# In JavaScript 1 == true returns true
0 is false # => false
1 is true # => false
# undefind vs null
# In JavaScript undefined == null returns true
undefined is null # => false
# NaN vs undefined/null/NaN
# These are same as JavaScript
NaN is undefined # => false
NaN is null # => false
NaN is NaN # => false