Javascript中的|0是什么意思?

3
我最近在研究asm.js用于一个项目中,我注意到很多时候asm.js编译的代码会以|0;结束语句,甚至像这样冗余地使用i = i|0;
这是我以前在Javascript代码中没有遇到过的。这是什么作用?
编辑
我不认为这是重复的。我知道位或是什么。我在这里特别询问为什么要在赋值之前与0进行或操作。这有什么用处?

请查看文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Bitwise_OR - Grundy
1
@Grundy 我知道什么是按位或。我只是不理解它在这种情况下的目的。 - Luke
所以,请查看重复的问题。 - Grundy
对任何数字 x 进行按位或运算并与 0 进行 OR 运算的结果为 x。对任何数字 x 进行按位或运算并与 -1 进行 OR 运算的结果为 -1。 - Grundy
你甚至可以更简短地编写它: i |= 0 - Stephan Bijzitter
显示剩余2条评论
1个回答

6

将数字转换为整数并使用按位或(bitwise or)操作符与0相结合。基本上是Math.floor()的简写形式。


2
请注意,使用此方法时,undefinedNaNnull也会被转换为0! :-) - Stephan Bijzitter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接