缩小js时进行布尔切换的原因

2022-09-20 00:00:00 javascript minify

我在一个js文件中有这行代码

var useScroll = Window.innerWidth > 1360 ? true : false;

缩小后就变成

i=Window.innerWidth>1360?!0:!1

我只是好奇,为什么有!运算符?对我来说,这样做更有意义。

i=Window.innerWidth>1360?1:0

解决方案

有一个非常合理的原因。10是整数,有时行为与布尔值不同。

然而,!运算符包括强制转换,这意味着!0!1是急性布尔值,但它们的类型比falsetrue短。这就是它们被使用的原因。

它们行为不同的示例:

var a = (1 === true); //a will be false
var a = (!0 === true); //a will be true

但是,您可以将代码简化为

i=Window.innerWidth>1360

因为Window.innerWidth>1360将是truefalse,这正是您要查找的内容。

相关文章