js技巧

作者: 在下高姓 | 来源:发表于2020-11-10 10:48 被阅读0次

    标签: js


    正文
    JavaScript 中最臭名昭著的 Bug 就是 0.1 + 0.2 !== 0.3,因为精度的问题,导致所有的浮点运算都是不安全

    1. 使用左移运算符 << 迅速得出2的次方

    1 << 2  // 4, 即 2的2次方
        1 << 10 // 1024, 即 2的10次方
        
        // 但是要注意使用场景
        a = 2e9;   // 2000000000
        a << 1;    // -294967296
    

    2. 使用 ^ 切换变量 0 或 1

    // --- before ---
        // if 判断
        if (toggle) {
            toggle = 0;
        } else {
            toggle = 1;
        }
        // 三目运算符
        togle = toggle ? 0 : 1;
        
        // --- after ---
        toggle ^= 1;
    

    3.使用 & 判断奇偶性

    console.log(7 & 1);    // 1
    console.log(8 & 1) ;   // 0
    

    4.使用 !! 将数字转为布尔值

    所有非0的值都是true,包括负数、浮点数:
    
    console.log(!!7);       // true
    console.log(!!0);       // false
    console.log(!!-1);      // true
    console.log(!!0.71);    // true
    

    5. 使用~、>>、<<、>>>、|来取整

    //不可对负数取整
    console.log(~~11.71)     // 11
    console.log(11.71 >> 0)  // 11
    console.log(11.71 << 0)  // 11
    console.log(11.71 | 0)   // 11
    console.log(11.71 >>> 0) // 11
    

    6.使用^判断符号是否相同

    (a ^ b) >= 0; //  true 相同; false 不相同
    

    7.用^来检查数字是否不相等

    // --- before ---
        if (a !== 1171) {...};
        
    // --- after ---
        if (a ^ 1171) {...};
    

    8.使用toString(16)取随机字符串

    Math.random().toString(16).substring(2, 15);
    

    9.使用.link() 创建链接

    // --- before ---
    let b = `<a herf="www.google.com">google</a>`;
        
    // --- after ---
    let b =  google .link( www.google.com );
    

    10.for 循环条件的简写

    // --- before ---
        for(let i = 0; i < arr.length; i++) {...}
        
        // --- after ---
        for(let i = arr.length; i--;) {...} // 注意 i-- 后面的分号别漏了
    

    相关文章

      网友评论

          本文标题:js技巧

          本文链接:https://www.haomeiwen.com/subject/wtndbktx.html