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了        
  • 相关阅读:
    控件与布局
    高性能mysql笔记 第一章 mysql架构
    简单排序——冒泡,选择,插入
    spring boot的默认配置
    nginx配置 负载均衡
    nginx+tomcat反向代理
    fiddler(4)安装--L
    fiddler(3)http协议-响应报文--L
    fiddler(2)http协议-请求报文--L
    Fiddler(1)简介--L
  • 原文地址:https://www.cnblogs.com/chenmeijiao/p/13983898.html
Copyright © 2011-2022 走看看