我今天正在查看一个在线游戏物理库,并遇到了~~运算符.我知道单个〜是一个按位NOT,是否会使~~不是NOT,它会返回相同的值,不是吗?
我刚刚发现在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" …Run Code Online (Sandbox Code Playgroud)