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了        
  • 相关阅读:
    C语言 简单的队列(数组队列)
    C语言 复杂的栈(链表栈)
    C语言 简单的栈
    C语言 链表的使用(链表的增删查改,链表逆转,链表排序)
    C语言 常用的时间函数
    C语言 百炼成钢17
    C语言 const常量讲解
    ndroid如何监听开机广播和关机广播
    Android判断GPS是否开启和强制帮用户打开GPS
    android java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题
  • 原文地址:https://www.cnblogs.com/chenmeijiao/p/13983898.html
Copyright © 2011-2022 走看看