Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
/* VT100 terminal reset (<ESC>c) */
console.log('\033c');
/* numbers comparations */
> '2' == 2
true
> '2' === 2
false
> [2] == 2
true
> [] + []
''
> [] == []
false
> typeof []
'object'
> [] == ![]
true
> +[] == +![]
true
/* null comparation */
> 0 > null
false
> 0 >= null
true
> 0 == null
false
> 0 <= null
true
> 0 < null
false
> typeof null
'object'
> null instanceof Object
false
/* checking array type */
> {}.toString.call([])
'[object Array]'
> function FooBar() {}
undefined
> {}.toString.call(new FooBar)
'[object Object]'
> (new FooBar).constructor == Foo
false
> [] instanceof Array
true
> Array.isArray([])
true
/* math */
> 999999999999999
999999999999999
> 9999999999999999
10000000000000000
> -9999999999999999
-10000000000000000
> 0.1 + 0.2 == 0.3
false
> 0.1 + 0.2
0.30000000000000004
> 3 > 2 > 1
false
> 3 > 2 >= 1
true
> '2' + 1
'21'
> '2' - 1
1
> '2' - -1
3
> 1/0
Infinity
> typeof Infinity
'number'
> 0 === -0
true
> 1/0
Infinity
> 1/-0
-Infinity
> Infinity == -Infinity
false
Number.MAX_VALUE
1.7976931348623157e+308
> 0 - 1
-1
> Number.MIN_VALUE < 0
false
> Number.MIN_VALUE
5e-324>
> Math.max(1,2,3)
3
> Math.min(1,2,3)
1
> Math.max() > Math.min()
false
> Math.max()
-Infinity
> Math.min()
Infinity
/* string */
> 'wtf' instanceof String
false
> typeof 'wtf'
'string'
> typeof String('wtf')
'string'
> String('wtf') === 'wtf'
true
> String('wtf') === new String('wtf')
false
> String('wtf') == new String('wtf')
true
> new String('wtf')
{ '0': 'w',
'1': 't',
'2': 'f' }
> new String('wtf').toString()
'wtf'
> 'wft' + 1
'wft1'
> 'wft' - 1
NaN
/* NaN */
> typeof NaN
'number'
> typeof 1138
'number'
> 1138 == 1138
true
> NaN == NaN
false
> isNaN('wft' - 1)
true
/* boolean math */
> true + false
1
> true + true == true
false
/* construct function */
> new 0xff.constructor.constructor('console.error("WTF")')()
WTF
> new Function('console.error("WTF")')()
WTF
/* typeof/instanceof */
> Array instanceof Array
false
> new Array instanceof Array
true
> Math instanceof Math
TypeError: Expecting a function in instanceof check, but got #<Object>
at repl:1:18
at REPLServer.self.eval (repl.js:110:21)
at Interface.<anonymous> (repl.js:239:12)
at Interface.emit (events.js:95:17)
at Interface._onLine (readline.js:203:10)
at Interface._line (readline.js:532:8)
at Interface._ttyWrite (readline.js:761:14)
at ReadStream.onkeypress (readline.js:100:10)
at ReadStream.emit (events.js:98:17)
at emitKey (readline.js:1096:12)
>

garrows commented Jan 24, 2017

['a','b','c'][3,2,1] === 'b'

fletom commented Feb 8, 2017

> [10, 9, 8, 3, 2, 1, 0].sort()
[ 0, 1, 10, 2, 3, 8, 9 ]
> '1' / '1'
1
> '1' * '1'
1
> '1' + '1'
'11'

Mechazawa commented May 24, 2017 edited

>[1,2,3,4].map(foo => {bar: foo * 10})
[undefined, undefined, undefined, undefined]
>[1,2,3,4].map(foo => {bar: foo * 10, baz: foo})
Syntax error!

djbarnwal commented Jun 1, 2017 edited

> '10' - 3
7

> '10' + 3
'103'

JoeReid commented Jun 16, 2017 edited

> ""*""
0

> ""**""
1

mcdorli commented Jul 27, 2017

@JoeReid @dhiraj161298 @Mechazawa @cheezypoofs learn type conversion, it's well defined and none of this is uneypected behaviour. @fletom The sort function operates on strings, of course it sorts it like that. This whole list is made by someone, who clearly doesn't understand the language. Especially the 0.2 + 0.1 part. It works with bits, of course it isn't exact.

scriptin commented Aug 4, 2017

@mcdorli Well, indeed 0.2 + 0.1 works as IEEE 754 says, but you know what?

$ echo | awk '{ print 0.1 + 0.2 }'
0.3

Where is your god now lol?

And please stop being a "you just don't appreciate the good parts ™" type of jerk. These are bugs caused by messed up type conversion rules. Instead of learning this crap, you could have spent your time improving the world or something, you know.

zeromus commented Aug 5, 2017

@mcdorli perfect! this is a good reference for someone who doesn't understand the language. You clearly doesn't understand something yourself... the language of humans -- the sarcasm, that someone can title a file "wtf" without being genuinely baffled by it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment