js中的特殊符号含义

一、 !!

  js中的!!    

  var o ={flag:4};
  var test = !!o.flag;
  console.log(test);  // true

二、~~,<<

  

  (~~(Math.random()*(1<<24)))
  得到一个0 到 16777216之间的值
  这个构造的其实是一个10进制的颜色值(随机生成数值),转换成16进制就是,像白色FFFFFF,蓝色0000FF等等。

  1.<<符号是"左位移"运算符
  1<<24是 把1左移24位,即 1的24次方(1<<24代表的是2进制中的1后面24个0即2的24次方)
  2.math.random()
  0.0 ~ 1.0 之间的一个伪随机double数值。
  3.~~是由2个~组成,~是位运算 NOT
  这行代码并不关心正负值。因此通过两次取返就可以得到纯整数部,我们还可以将~~视为parseInt的简写:
var a = 12.34, // ~~a = 12
    b = -1231.8754, // ~~b = -1231
    c = 3213.000001 // ~~c = 3213
;

~~a == parseInt(a, 10); // true
~~b == parseInt(b, 10); // true
~~c == parseInt(c, 10); // true


 
(持续更新中。。。)
原文地址:https://www.cnblogs.com/lxg0/p/7856275.html