我刚刚发现在 ES6 中有一个新的数学方法:Math.trunc
.
我在MDN 文章中阅读了它的描述,听起来像是在使用|0
.
此外,<<0
, >>0
, &-1
,^0
也做类似的事情(感谢@kojiro 和@Bergi)。
经过一些测试,似乎唯一的区别是:
Math.trunc
返回-0
区间中的数字(-1,-0]
。位运算符返回0
.Math.trunc
返回NaN
非数字。位运算符返回0
.
是否有更多差异(在所有差异中)?
n | Math.trunc | Bitwise operators
----------------------------------------
42.84 | 42 | 42
13.37 | 13 | 13
0.123 | 0 | 0
0 | 0 | 0
-0 | -0 | 0
-0.123 | -0 | 0
-42.84 | -42 | -42
NaN | NaN | 0
"foo" | NaN | 0
void(0)| NaN | 0