I have just found that in ES6 there's a new math method: Math.trunc
.
I have read its description in MDN article, and it sounds like using |0
.
Moreover, <<0
, >>0
, &-1
, ^0
also do similar things (thanks @kojiro & @Bergi).
After some tests, it seems that the only differences are:
Math.trunc
returns -0
with numbers in interval (-1,-0]
. Bitwise operators return 0
.
Math.trunc
returns NaN
with non numbers. Bitwise operators return 0
.
Are there more differences (among all of them)?
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
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…