“ |”是什么 (单管道)在JavaScript中执行?

2020/11/10 17:22 · javascript ·  · 0评论
console.log(0.5 | 0); // 0
console.log(-1 | 0);  // -1
console.log(1 | 0);   // 1

为什么0.5 | 0返回零,但任何整数(包括负数)都返回输入整数?单个管道(“ |”)有什么作用?

这是按位或

由于按位运算仅对整数有意义,因此将
0.5被截断。

0 | xx,对于任何人x

位比较非常简单,几乎无法理解;)看看这个“小问题”

   8 4 2 1
   -------
   0 1 1 0 = 6  (4 + 2)
   1 0 1 0 = 10 (8 + 2)
   =======
   1 1 1 0 = 14 (8 + 4 + 2)

按位与6和10将为您提供14:

   alert(6 | 10); // should show 14

太混乱了!

单个管道是按位OR

对每对位执行“或”运算。如果a或b为1,则OR b产生1。

JavaScript在按位运算中会截断任何非整数,因此其计算方式为0|0,即0。

本示例将为您提供帮助。

var testPipe = function(input) { 
   console.log('input => ' + input);
   console.log('single pipe | => ' + (input | 'fallback'));
   console.log('double pipe || => ' + (input || 'fallback'));
   console.log('-------------------------');
};

testPipe();
testPipe('something'); 
testPipe(50);
testPipe(0);
testPipe(-1);
testPipe(true);
testPipe(false);
本文地址:http://javascript.askforanswer.com/shishenme-danguandaozaijavascriptzhongzhixing.html
文章标签:
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!