zoukankan      html  css  js  c++  java
  • JS中的按位非(~)的使用技巧

    按位非

    按位非操作符由一个波浪线(~)表示,执行按位非的结果就是返回数值的反码

    现在让我来看几个例子

    例子1

    console.log(4);
    console.log(~4);
    console.log(~~4);

    例子2

    console.log(4.9.toString(2));
    console.log(~4.9);
    console.log(~~4.9);

    例子3

    console.log(-4.1.toString(2));
    console.log(~-4.1);
    console.log(~~-4.1);

    结论

     通过上面的例子我们可以知道对于整数,按位非就是操作数的负值减1.

    但是对于浮点数就比较麻烦了,操作浮点数时,会直接舍去小数部分,再取负值减1

    利用这点我们可以可以使用~~来代替Math.floor();

    比如我们经常求一个数组的中点,就可以直接~~(arr.length/2),是不是比Math.floor()来的更方便呢?

    此外|0操作也可以达到和~~类似的效果,例如(arr.length/2)|0

    再补充个小知识:

    console.log(~~NaN);//0
    console.log(NaN|0);//0
  • 相关阅读:
    Spring框架概念
    git stash 用法总结和注意点
    Java虚拟机:对象创建过程与类加载机制、双亲委派模型
    办公软件技巧
    Zookeeper到底是干嘛的
    ANdroid Studio下载
    node.js网络(net)
    显示日期
    打包apk

  • 原文地址:https://www.cnblogs.com/wuguanglin/p/notOperator.html
Copyright © 2011-2022 走看看