zoukankan      html  css  js  c++  java
  • Javascript编程小技巧

    1、单行写一个评级组件

    "★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate);

    定义一个变量rate是1到5的值,然后执行上面代码

    2、论如何优雅的取随机字符串

    // Math.random().toString(36) 生成随机数
    // .toString(36) 将随机数转换成16进制数
    // .substring(2) 将'0.'截掉
    Math.random().toString(36).substring(2);

    论如何优雅的取整

    3、论如何优雅的取整

    // 双波浪线 ~~ 操作符也被称为“双按位非”操作符。
    var a = ~~2.33
    // | (按位或) 对每一对比特位执行或(OR)操作。
    var b= 2.33 | 0
    // ^ (按位异或),对每一对比特位执行异或(XOR)操作。
    var c= 2.33 ^ 0
    // >> (右移) 操作符会将第一个操作数向右移动指定的位数。
    var d = 2.33 >> 0

    4、如何优雅的实现金钱格式化:1234567890 --> 1,234,567,890

    // 1、用正则魔法实现:
    var test1 = '1234567890'
    var format = test1.replace(/B(?=(d{3})+(?!d))/g, ',')
    
    // 2、非正则的优雅实现
    function formatCash(str) {
           return str.split('').reverse().reduce((prev, next, index) => {
                return ((index % 3) ? next : (next + ',')) + prev
           })
    }
    // 3、使用toLocaleString
    (123456789).toLocaleString('en-US')

    5、论如何最佳的让两个整数交换数值

    // 1、使用位运算
    let a = 3,b = 4
    a ^= b
    b ^= a
    a ^= b
    
    // 2、ES6
    var a = 3,b = 4;
    [b, a] = [a, b]

    6、0.1 + 0.2 === 0.3

    Number.EPSILON=(function(){   //解决兼容性问题
        return Number.EPSILON?        
        Number.EPSILON:Math.pow(2,-52);
    })();
    //上面是一个自调用函数,当JS文件刚加载到内存中,就会去判断并返回一个结果,相比if(!Number.EPSILON){
      //   Number.EPSILON=Math.pow(2,-52);
      //}这种代码更节约性能,也更美观。
    function numbersequal(a,b){ 
        return Math.abs(a-b)<Number.EPSILON;
    }
    //接下来再判断   
    var a=0.1+0.2, b=0.3;
    console.log(numbersequal(a,b)); //这里就为true了        
  • 相关阅读:
    centos7 yum安装配置Lnmp和负载配置
    Linux搭建lamp(Apache+PHP+Mysql环境)centos7.2版详细教程
    php的移位符运算
    Mysql的注入与防御
    介绍10个非常有用的PHP函数
    PHP性能的分析
    Netty 4源码解析:服务端启动
    centOS6.6升级gcc4.8
    kafka 0.8.x producer Example(scala)
    spark standalone zookeeper HA部署方式
  • 原文地址:https://www.cnblogs.com/chenmeijiao/p/13983898.html
Copyright © 2011-2022 走看看