Reason For Boolean Switching When Minifying Js
Solution 1:
The ! operator does casting. So !0 becomes true and !1 becomes false. However, 0 and 1 are numbers, not booleans.
Solution 2:
There is a very valid reason. 1 and 0 are integeers, and does sometimes behave different than booleans.
However the ! operator includes casting, which menas that !0 and !1 are acutal booleans, but they are shorter to type than false and true. And that is the reason they are beeing used.
Example where they behave different:
var a = (1 === true); //a will be false
var a = (!0 === true); //a will be trueHowever you can simplify your code to
i=Window.innerWidth>1360since Window.innerWidth>1360 will be either true or false which is exactly what you are looking for.
Solution 3:
if you do !0 or !1 it will become a boolean, if you remove ! it will be an integer...
And instead of doing
Window.innerWidth>1360?true :falsedo
Window.innerWidth>1360Solution 4:
The ! is (logical NOT) operator So !0 become true and !1 becomes false. Where only 0 and 1 are numbers not boolean.
var n1 = !true; // !t returns falsevar n2 = !false; // !f returns truevar n3 = !'Cat'; // !t returns falseSo, both have a different meaning by data types.
i=Window.innerWidth>1360?1:0 This is also valid as you told but when you want data type as boolean you can't get by using this expression.
Post a Comment for "Reason For Boolean Switching When Minifying Js"