【发布时间】:2012-06-06 03:49:08
【问题描述】:
可能重复:
What is the “double tilde” (~~) operator in JavaScript?
D3 教程给出了一个产生随机序列的函数:
var t = 1297110663, // start time (seconds since epoch)
v = 70, // start value (subscribers)
data = d3.range(33).map(next); // starting dataset
function next() {
return {
time: ++t,
value: v = ~~Math.max(10, Math.min(90, v + 10 * (Math.random() - .5)))
};
}
注意 ~~ (tilda tilda) 在:
value: v = ~~Math.max(10, Math.min(90, v + 10 * (Math.random() - .5)))
通过在 javascript 终端中玩耍,我看到了:
~~1
1
~~-1
-1
~~-1.3
-1
parseInt(5)
5
parseInt(-5)
-5
parseInt(-5.3)
-5
parseInt(5.3)
5
既然 ~~ 和 parseInt 似乎是等价的,那么使用 parseInt 的基本原理是什么?
【问题讨论】:
-
TIL 关于 JavaScript 中的波浪号按位非运算符。谢谢。
标签: javascript