- true + false
- [,,,].length
- [1, 2, 3] + [4, 5, 6]
- 0.2 + 0.1 === 0.3
- 10,2
- !!””
- +!![]
- !!!true
- true == “true”
- 010 - 03
- “” - - “”
- null + 0
- 0/0
- 1/0 > Math.pow(10, 1000)
- true++
- “” - 1
- (null - 0) + “0”
- true + (“true” - 0)
- !5 + !5
- [] + []
- NaN === NaN
- NaN++
- undefined + false
- +0 === -0
- +!!NaN * “” - - [,]
https://jsisweird.com/
true + false
Number(true); // -> 1Number(false); // -> 01 + 0; // -> 1
[,,,].length
[,] + [,]; // -> ""[] + [] === [,] + [,]; // -> true[,,,] + [,,,]; // -> ",,,,"([,,,] + [,,,]).length === [,,,,].length; // -> true
[1, 2, 3] + [4, 5, 6]
[1, 2, 3,] + [4, 5, 6]; // -> "1,2,34,5,6"[1, 2, 3] + [, 4, 5, 6]; // -> "1,2,3,4,5,6"[1, 2, 3, ""] + [4, 5, 6]; // -> "1,2,3,4,5,6"[...[1, 2, 3], ...[4, 5, 6]];
0.2 + 0.1 === 0.3
0.2 + 0.1; // -> 0.30000000000000004;0.2 + 0.1 > 0.3; // -> true
10,2
10, 2; // -> 21, 2, 3, 4; // -> 442, "pineapple", true; // -> true
!!””
Boolean(""); // -> falseBoolean(0); // -> falseBoolean("Pineapple"); // -> trueBoolean(42); // -> true
+!![]
Boolean([]); // -> trueNumber(true); // -> 1
!!!true
!!!!!!!!!!!!true; // -> true
true == “true”
Number(true); // -> 1Number("true"); // -> NaN1 == NaN; // -> false
010 - 03
010; // -> 803; // -> 38 - 3; // -> 501111111111111111; // -> 40210710958665010 === 0000000010; // -> true
“” - - “”
Number(""); // -> 00 - - 0; // -> 0+"" - -"";+0 - -0;- -""; // -> 0--""; // -> SyntaxError
null + 0
Number(null); // -> 00 + 0; // -> 0null === false; // -> false+null === +false; // -> true
0/0
isNaN(0/0); // -> true
1/0 > Math.pow(10, 1000)
1/0; // -> InfinityMath.pow(10, 1000); // -> InfinityInfinity > Infinity; // -> false
true++
1++; // -> SyntaxError"x"++; // -> SyntaxErrorundefined++; // -> NaNlet _true = true;_true++;_true; // -> 2
“” - 1
Number(""); // -> 00 - 1; // -> -1;" " - 1; // -> -1;"" + 1; // -> "1";
(null - 0) + “0”
Number(null) - 0; // -> 00 + "0"; // -> "00"(null - 0) - "0"; // -> 0
true + (“true” - 0)
Number("true"); // -> NaN
!5 + !5
Boolean(5); // -> true!true; // -> falseNumber(false); // -> 00 + 0; // -> 0
[] + []
[].toString(); // -> """" + ""; // -> ""[] + [] === [,] + [,]; // -> true[].length; // -> 0[,].length; // -> 1[].toString() === [,].toString(); // -> trueNumber([]) === Number([,]); // -> true
NaN === NaN
isNaN(NaN); // -> trueNaN === NaN; // -> falseObject.is(NaN, NaN); // -> true
NaN++
let _NaN = NaN;_NaN++;isNaN(_NaN); // -> true_NaN--;isNaN(_NaN); // -> true_NaN *= 10;isNaN(_NaN); // -> true
undefined + false
Number(false); // -> 0Number(undefined); // -> NaNNaN + 0; // -> NaN!!undefined === false; // -> true!!undefined + false; // -> 0
+0 === -0
+0 === -0; // -> trueObject.is(+0, -0); // -> false
+!!NaN * “” - - [,]
+!!NaN; // -> 0Number(""); // -> 0-[,]; // -> -00 * 0 - -0; // -> 0