• 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是什么
    yum安装nginx
    .net 哈希
    Excel文件处理Demo
    汉字处理组件
    Log4Net
  • 原文地址:https://www.cnblogs.com/wuguanglin/p/notOperator.html
Copyright © 2020-2023  润新知