JavaScript 代码质量优化之路 | 青训营笔记

43 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天

如何写好JS

写代码最应关注什么:
风格、约定、效率、使用场景、设计

事件本身的槽点:
NPM 模块粒度
代码风格
代码质量/效率

实现一个切换多个交通灯状态切换的功能:

版本一:

image.png

版本二:

image.png

版本三:

1677508159197.png

版本四:

1677508188408.png

判断是否是四的幂:

版本一:一直判断是否整除
function isPowerofFour(num){
    num = parseInt(num);
    while(num > 1) {
        if(num % 4) return false;
        num /= 4;
    }
    return true;
}
版本二:使用位操作,位与判断最后是否是0b11,不是0直接false
function isPowerOfFour(num){
    num = parseInt(num);
    while(num > 1) {
        if(num & Obl1) return false;
        num >>>= 2 ;
    }
    return true;
 }
版本三:o(1)时间复杂度,通过和n-1的位操作来判断
function isPowerOfFour(num){
    num = parseInt(num);
    return num > 0 &&
    (num & (num - 1)) === 0 &&
    (num & OXAAAAAAAA) === 0;
 }
版本四:
function isPowerofFour(num){
    num = parseInt(num).toString(2);
    return /^1(?:00)*$/.test(num);
}

洗牌

sort方法进行两两交换其概率是不一样的,所以如果用sort方法洗牌会造成越小的数靠前的几率越大

分红包

1.切西瓜法: 随机拆成两部分,在大的那部分中继续拆,这样就不会存在不够分的情况了,这样分出来的红包也相对均匀,但就是因为均匀,所以肯会不够刺激  
2.抽牌法:采用洗牌的算法来抽牌

引用:JavaScript 代码质量优化之路

标题:JavaScript 代码质量优化之路 - 掘金

网址:juejin.cn/course/byte…