Skip to content

Instantly share code, notes, and snippets.

@zhilyaev
Created April 1, 2019 22:24
Show Gist options
  • Select an option

  • Save zhilyaev/d479eadc1109c770bc383d0926f4155a to your computer and use it in GitHub Desktop.

Select an option

Save zhilyaev/d479eadc1109c770bc383d0926f4155a to your computer and use it in GitHub Desktop.

JS is awesome

Node v8.11.4 Lets try understand this shit.

a === b

It's easy

a\b 0 '0' null undefined [] {}
0 true false false false false false
'0' true false false false false
null true false false false
undefined true false false
[] false false
{} false

a == b

Normal

a\b 0 '0' null undefined [] {}
0 true true false false true false
'0' true false false false false
null true true false false
undefined true false false
[] false false
{} false

a > b

okay

a\b 0 '0' null undefined [] {}
0 false false false false false false
'0' false false false true false
null false false false false
undefined false false false
[] false false
{} false

a >= b

Look the last 2 tables above

a\b 0 '0' null undefined [] {}
0 true true true false true false
'0' true true false true false
null true false true false
undefined false false false
[] true false
{} true

a < b

a\b 0 '0' null undefined [] {}
0 false false false false false false
'0' false false false false true
null false false false false
undefined false false false
[] false true
{} false

a <= b

`a\b 0 '0' null undefined [] {}
0 true true true false true false
'0' true true false false true
null true false true false
undefined false false false
[] true true
{} true

a - b

a\b 0 '0' null undefined [] {}
0 0 0 0 NaN 0 NaN
'0' 0 0 0 NaN 0 NaN
null 0 0 0 NaN 0 NaN
undefined NaN NaN NaN NaN NaN NaN
[] 0 0 0 NaN 0 NaN
{} -0 -0 -0 NaN -0 NaN

a + b

Concatenation of strings

a\b 0 '0' null undefined [] {}
0 0 '00' 0 NaN '0' '0[object Object]'
'0' '00' '00' '0null' '0undefined' '0' '0[object Object]'
null 0 'null0' 0 NaN 'null' 'null[object Object]'
undefined NaN 'undefined0' NaN NaN 'undefined' 'undefined[object Object]'
[] '0' '0' 'null' 'undefined' '' '[object Object]'
{} 0 0 0 NaN 0 '[object Object][object Object]'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment