Javascript | 0做什么
当你打开你的控制台,输入任何点数,例如5.123,然后在后面加上| 0,它将四舍五入为5 不知何故,如果你把它改为| 2,它会记下7Javascript | 0做什么,javascript,Javascript,当你打开你的控制台,输入任何点数,例如5.123,然后在后面加上| 0,它将四舍五入为5 不知何故,如果你把它改为| 2,它会记下7 var test1 = 5.123 | 0 ; // will be 5 var test2 = 5.123 | 2 ; // will be 7 var test3 = 5.123 | 4 ; // will be 5 again 有人能给我解释一下上面发生了什么,我能用这个代替parseInt吗?这是一个位运算符。。。引用这句话: 按位运算符将其操作数视为3
var test1 = 5.123 | 0 ; // will be 5
var test2 = 5.123 | 2 ; // will be 7
var test3 = 5.123 | 4 ; // will be 5 again
有人能给我解释一下上面发生了什么,我能用这个代替parseInt吗?这是一个位运算符。。。引用这句话: 按位运算符将其操作数视为32位(0和1)的序列,而不是十进制、十六进制或八进制数。例如,十进制数字9的二进制表示为1001。按位运算符对这种二进制表示执行操作,但返回标准JavaScript数值 发生的情况是,运算符将数字视为32位整数;so 5.123被视为:
0000 0000 0000 0000 0000 0000 0000 0101
(小数部分被抛出),0被视为
0000 0000 0000 0000 0000 0000 0000 0000
然后OR函数比较这两个数字,如果其中一个数字有1,则写入1。
因此,将按位Or与十进制数和zeeo一起使用本质上是一种丢弃十进制部分并保留整数部分的方法
另一个例子是:
0000 0000 0000 0000 0000 0000 0000 0101 (5)
0000 0000 0000 0000 0000 0000 0000 0010 (2)
--------------------------------------- ORed
0000 0000 0000 0000 0000 0000 0000 0111 (7)
示例4:
0000 0000 0000 0000 0000 0000 0000 0101 (5)
0000 0000 0000 0000 0000 0000 0000 0100 (4)
--------------------------------------- ORed
0000 0000 0000 0000 0000 0000 0000 0101 (5)
您可以使用它来转换以丢弃数字的小数部分-请参见它是位运算符请参见