• 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了        
  • 相关阅读:
    流程控制之while循环
    流程控制之case语句
    流程控制之if判断
    元字符
    基本数据类型与值操作
    变量
    shell 基础
    node系列---【node连接数据库步骤解析】
    node系列--【 DML语句对数据库的增删改查】
    node系列--【express生成器安装及第三方中间件安装】
  • 原文地址:https://www.cnblogs.com/chenmeijiao/p/13983898.html
Copyright © 2020-2023  润新知