为什么!x将1和0更改为真/假
Why does !x change 1 and 0 to true / false
本文关键字:为什么 更新时间:2023-09-26
所以这里是我的示例代码-http://jsfiddle.net/JRqq3/。
它输出true/false而不是0/1,为什么这样?
代码-
x = 1;
for(i = 0; i < 20; i++) {
x = !x;
$("body").append(x+"<br />");
}
因为!运算符在执行其工作时将该值强制为布尔值。
因为"!"运算符将变量的类型强制转换为bool。你可能想做:
for (let i = 1; i <= 20; ++i) {
$("body").append( String(i % 2) + '<br />');
}
这里发生了什么?CCD_ 1是一个模除法算子。i % 2
表示"将i
除以2并返回余数"。
i % 2
总是1或0(除以2的余数总是0或1)。
因为通过计算x = !x;
,您将类型更改为布尔值,而不是整数。
因为否定运算符。
如果参数为true,则返回false,反之亦然。
在这种情况下,首先将0强制转换为false,然后将1强制转换为true。然后这些值将被否定。
!
是一个布尔逻辑运算符,将返回一个布尔值。要将true
/false
转换回1
/%
0,可以使用一元+
运算符:
x = 1;
for(i = 0; i < 20; i++) {
x = +!x;
$("body").append(x+"<br />");
}
然而,@Miszy用mod 2
运算符给出的答案更加优雅简洁。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 为什么“;未定义的“;在JavaScript中结束循环
- 为什么这在IE中的工作方式与在Firefox中不同
- 知道为什么我的旋转木马不会自动更改图片吗
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 为什么在变形之前不缺少Fx
- 为什么JavaScript在for循环为3时向所有4发出警报
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 为什么Airbnb风格指南说不鼓励依赖函数名称推断
- 为什么要使用0>javascript中的0
- 为什么无法在TypeScript中导出类实例
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 为什么我的d3.jsselectAll+过滤器没有过滤
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 为什么忽略了eval()代码中的语法错误
- 为什么在画布上画线;t出现
- 为什么js事件消失了
- 为什么元素的宽度在页面加载之后和那一刻之后不同
- 为什么不'在JQuery中找到第二个css选择器的工作