zoukankan      html  css  js  c++  java
  • js位运算符的应用

    x | 0,x >> 0,~~x

    这3种运算符都可以取整

    1. 取整,正数取地板值Math.foor,负数取天花板值Math.ceil
    2. 非数字转为0,null和undefined转换为0

    x >>> 0

    1. 取整,正数取地板值,负数无用
    2. 非数字转为0,null和undefined转换为0

    ~x

    1. -1转为0
    2. 值都转换为-(Math.floor(x)+1)

    应用

    1. if(~arr.indexOf(el))

    可以判断包含el,返回-1会转换为0,判断为false,其他判断为true

    2. x = ~~a

    a若为null和undefined,转换为0,比parseInt方便

    3. var len = O.length >>> 0;

    length若为null或undefined,转换为0,其他正值取整

    4. 使用&,>>,|来完成rgb值和16进制颜色值之间的转换

    16进制颜色值转RGB:

    function hexToRGB(hex){
        var hex = hex.replace("#","0x"),
            r = hex >> 16,
            g = hex >> 8 & 0xff,
            b = hex & 0xff;
        return "rgb("+r+","+g+","+b+")";
    }

    RGB转16进制颜色值:

    function RGBToHex(rgb){
        var rgbArr = rgb.split(/[^d]+/),
            color = rgbArr[1]<<16 | rgbArr[2]<<8 | rgbArr[3];
        return "#"+color.toString(16);
    }

    运行 hexToRGB("#ffffff") 返回 "rgb(255,255,255)"

    运行 RGBToHex("rgb(255,255,255)") 返回 "#ffffff"

  • 相关阅读:
    Rancher2.x部署K8s
    windows 安装 rabbitmq
    Mysql优化
    Docker部署Nginx应用(2)
    Docker入门笔记(1)
    kafka的安装及基本使用
    Dubbo的Api+Provider+Customer示例(IDEA+Maven+Springboot+dubbo)
    zookeeper 数据节点的增删改查
    zookeeper伪分布集群配置
    密集重建
  • 原文地址:https://www.cnblogs.com/mengff/p/12865740.html
Copyright © 2011-2022 走看看