首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript新手

Javascript新手
EN

Stack Overflow用户
提问于 2016-10-20 14:53:22
回答 3查看 31关注 0票数 0

我试图在javascript中使用二进制搜索来查找数组元素,我偶然发现了这段代码。我现在才刚开始学习javascript一个星期。字符"|“在此语句中是什么意思

代码语言:javascript
复制
while (init_num <= last_num) {
            mid_point = (init_num + last_num) / 2 | 0;
}
EN

回答 3

Stack Overflow用户

发布于 2016-10-20 14:55:02

这是个bitwise OR operator。但它所做的是使用副作用来使一个可能有小数部分的数字变成一个整数。

JavaScript中的所有数字都是浮点数,因此(init_num + last_num) / 2可能包含小数部分。当您将按位运算符应用于一个数字时,它会被临时强制转换为32位整数,丢失所有小数部分。由于OR运算符的结果为任一操作数上的任何位设置了位,并且由于示例中的第二个操作数为0(所有位都关闭),因此结果是与左操作数相同的位模式(然后将其转换回浮点数)。

票数 1
EN

Stack Overflow用户

发布于 2016-10-20 14:55:03

管道是按位or。

位运算符的一种用途是数值转换,因为有时它们比Math或parseInt等效运算符快得多。你付出的代价是代码的可读性。

更多信息可以在这里找到:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators

票数 0
EN

Stack Overflow用户

发布于 2016-10-20 14:57:34

|代表OR example:x = 5 | 1 0101 | 0001 0101 = 5

还可以看看这个:js comparisons

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40147399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档