我在js文件中有这行代码
#N/A
当它缩小时变为
Application.Match
我只是好奇,为什么有IsError
运算符?对我来说,做到这一点更有意义。
var useScroll = Window.innerWidth > 1360 ? true : false;
答案 0 :(得分:5)
!
运算符执行转换。因此!0
变为true
而!1
变为false
。而0
和1
是数字,而不是布尔值。
答案 1 :(得分:3)
有一个非常正确的理由。 1
和0
是整数,有时与布尔有所不同。
但是,!
运算符包含强制转换,其中!0
和!1
是真正的布尔值,但它们的类型比false
和true
短。这就是他们被使用的原因。
他们表现不同的示例:
var a = (1 === true); //a will be false
var a = (!0 === true); //a will be true
但是,您可以将代码简化为
i=Window.innerWidth>1360
因为Window.innerWidth>1360
将是true
或false
,这正是您所寻找的。 p>
答案 2 :(得分:2)
如果您执行!0
或!1
它将成为布尔值,如果您删除!
它将是一个整数...
而不是做
Window.innerWidth > 1360 ? true : false
做
Window.innerWidth > 1360
答案 3 :(得分:2)
!是(逻辑非)运算符所以!0变为真,!1变为假。只有0和1的数字不是布尔值。
var n1 = !true; // !t returns false
var n2 = !false; // !f returns true
var n3 = !'Cat'; // !t returns false
因此,数据类型都有不同的含义。
i = Window.innerWidth> 1360?1:0 这也是有效的,但是当您希望数据类型为布尔值时,您无法使用此表达式。