“|”有什么用? JS数组中的(管道)符号

时间:2015-05-20 13:11:53

标签: javascript arrays

我有一个JS数组,在我们现有的代码中使用如下:

temp = charArray[0 | Math.random() * 26];

想知道“|”的用法究竟是什么上面代码中的符号是否有更多这样的运算符?

2 个答案:

答案 0 :(得分:9)

来自the MDN

  

按位运算符将其操作数视为一组32位(零和0)   ()并返回标准的JavaScript数值。

由于32位部分是数字的IEEE754表示的整数部分(的一部分),这只是删除数字的非整数部分的一个技巧(小心它也会破坏)大整数不适合32位!)。

相当于

temp = charArray[Math.floor(Math.random() * 26)];

答案 1 :(得分:2)

|是bitwise OR,这意味着,任何一个参数中1的所有位在结果中都是1。按0或0返回给定输入,解释为整数。

在你的代码中,它主要用于转换     的Math.random() 数字到整数。底线是:



var a = 5.6 | 0 //a=5



 说明: 让我们拿



var a = 5; //binary - 101
var b = 6; //binary - 110

  a|b                a|a            a|0
  101                101            101
  110                101            000
 ------             ------         ------
  111-->7            101-->5        101-->5