你见过哪些令你瞠目结舌的 JavaScript 代码技巧?

function getRating(rating) {
    if(rating > 5 || rating < 0) throw new Error('数字不在范围内');
    return '★★★★★☆☆☆☆☆'.substring(5 - rating, 10 - rating );
}

可以快速打印一个五分制的评分情况。

Math.random().toString(36).substr(2,10)

获得一个10位长度的随机字符串

在这里插入图片描述
3.在这里插入图片描述
4.贴一个在《JavaScript 忍者秘籍》里看到的技巧:

function addMethod(object, name, fn) {
    var old = object[name];
    object[name] = function(){
        if (fn.length == arguments.length)
           return fn.apply(this, arguments)
        else if (typeof old == 'function')
           return old.apply(this, arguments);
    };
}

你能猜到这个函数的用处么

5.膛目结舌算不上, 但是个实用的小技巧.

数字补零:

function format(n, length) {
    return (Array(length).join('0') + n).substr(-length);
}

或者特殊情况:

('0' + n).substr(-2); // 2 位
('000' + n).substr(-4); // 4 位

主流 Promise 实现中的 each helper 也很有意思:

function each(items, callback) {
    return items.reduce((promise, item) => promise.then(() => callback(item)), Promise.resolve());
}

还有个有意思的应用是 toString 配合 join:

class FormData {
    constructor(key, value) {
        this.key = key;
        this.value = value;
    }
    
    toString() {
        return encodeURIComponent(this.key) + '=' + encodeURIComponent(this.value);
    }
}

let items = [
    new FormData('foo', 'yo yo yo!'),
    new FormData('bar', 'biu biu biu!')
];

console.log(items.join('&'));

对了,最近有不少小伙伴私信我吐槽说学习web前端很难,在这里我想说其实不难,难的是现在教程弥漫,没有一套系统的教程以及学习的时候遇到问题无人解答,这种问题很好解决,大家可以添加下面这个前端解答裙,学习时遇到不会的可以在里面问,里面的前辈们都很好,无偿解答呢
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值