美文网首页
JS装逼操作锦集

JS装逼操作锦集

作者: 小橘籽 | 来源:发表于2021-04-28 11:37 被阅读0次

    位运算符

    这套运算符针对的是整数,所以对 JavaScript 完全无用,因为 JavaScript 内部,所有数字都保存为双精度浮点数。如果使用它们的话,JavaScript 不得不将运算数先转为整数,然后再进行运算,这样就降低了速度。而且"按位与运算符"&同"逻辑与运算符"&&,很容易混淆。

    & AND( 如果两位都是 1 则设置每位为 1)

    说明

      0101
    & 0001
    = 0001
    

    应用

    /* 奇偶判断 */
    
    n&1===1 // true 奇数,false偶数
    

    | OR (如果两位之一为 1 则设置每位为 1)

    说明

       0101
    |  0001
    =  0101
    

    应用

    
    

    ^ XOR (如果两位只有一位为 1 则设置每位为 1)

    说明

       0101
    ^  0001
    =  0100
    

    应用

    /* 切换 0和1 */
    let toggle = 1
    toggle ^= 1 // 0
    toggle ^= 1 // 1
    
    
    /* 两值交换 */
    
    let a=1,b=2
    a^=b
    b^=a
    a^=b
    // a===2 b===1
    

    ~ NOT (反转所有位)

    说明

    ~  0101
    =  1010
    

    应用

    /* 判断项是否存在 */
    
    
    
    /* 保留整数位( 对于浮点数,~~value可以代替parseInt(value),而且前者效率更高些) */
    ~~ 1.2 // => 1
    ~~ -1.2 // => -1
    

    << 零填充左位移:通过从右推入零向左位移,并使最左边的位脱落。

    说明

    
    

    应用

    /* 加倍 */
    let num = 2
    num=num<<1 // => 4
    
    /* 迅速得出2的次方 */
    1<<2 // 2^2 => 4
    1<<10 // 2^10 => 1024
    

    >> 零填充右位移:通过从左推入最左位的拷贝来向右位移,并使最右边的位脱落。

    说明

    
    

    应用

    
    

    >>> 零填充右位移:通过从左推入零来向右位移,并使最右边的位脱落

    说明

    
    

    应用

    arr.splice(arr.indexOf(4)>>>0) // 元素不存在时返回[]
    // -1>>>0  => 4294967295
    

    其他

    使用 !! 将数字转为布尔值

    所有非0的值都是true,包括负数、浮点数:

    console.log(!!7);       // true
    console.log(!!0);       // false
    console.log(!!-1);      // true
    console.log(!!0.71);    // true
    

    使用toString(16)取随机字符串

    Math.random().toString(16).substring(2, 15); // .substring() 的第二个参数控制取多少位 (最多可取13位)
    

    for 循环条件的简写

    for(let i = 0; i < arr.length; i++) {...}
    for(let i = arr.length; i--;) {...} // 注意 i-- 后面的分号别漏了
    

    参考文献

    https://www.w3school.com.cn/js/js_bitwise.asp

    https://developer.mozilla.org/zh-CN/docs/conflicting/Web/JavaScript/Reference/Operators_7c8eb9475d97a4a734c5991857698560

    https://zhuanlan.zhihu.com/p/339012370

    相关文章

      网友评论

          本文标题:JS装逼操作锦集

          本文链接:https://www.haomeiwen.com/subject/nshvrltx.html