Javascript 为什么呢!x将1和0更改为真/假
下面是我的示例代码- 它输出真/假而不是0/1为什么 代码-Javascript 为什么呢!x将1和0更改为真/假,javascript,jquery,Javascript,Jquery,下面是我的示例代码- 它输出真/假而不是0/1为什么 代码- x = 1; for(i = 0; i < 20; i++) { x = !x; $("body").append(x+"<br />"); } x=1; 对于(i=0;i
x = 1;
for(i = 0; i < 20; i++) {
x = !x;
$("body").append(x+"<br />");
}
x=1;
对于(i=0;i<20;i++){
x=!x;
$(“正文”)。附加(x+”
);
}
因为!运算符在执行其任务时将值强制为bool。因为通过计算x=!x代码>您正在将类型更改为布尔值而不是整数。因为“!”运算符将变量的类型转换为布尔值。您可能想做:
for (let i = 1; i <= 20; ++i) {
$("body").append( String(i % 2) + '<br />');
}
for(设i=1;i,因为求反运算符!
如果参数为true,则返回false,反之亦然
在这种情况下,先将0转换为false,将1转换为true。然后这些值将被求反。!
是一个值,并将返回一个布尔值。要将true
/false
转换回1
/0
,可以使用:
x=1;
对于(i=0;i<20;i++){
x=+!x;
$(“正文”)。附加(x+”
);
}
然而,@Miszy用mod 2
的回答更加优雅和简洁。该死,太慢了…+1不能成为第一个。这是一个布尔运算符,你期待什么?好吧,我不知道;)!向上投票所有答案,谢谢。如果您对某个数字感兴趣,可以强制将其显示为0/1<代码>x=编号(!x)代码>嗯,我不需要解决这个问题,只是好奇为什么会这样,当它显示真/假而不是1/0:)看这里,第二步:你也可以使用x=+!x
获取一个数值。同意,这将产生相同的结果。然而,在我看来,这个解决方案更神秘。新手很难理解+背后的意图!因此,我建议使用更明确的版本。
x = 1;
for(i = 0; i < 20; i++) {
x = +!x;
$("body").append(x+"<br />");
}