你見過哪些令你瞠目結舌的 JavaScript 代碼技巧?

function getRating(rating) {    if(rating > 5 || rating < 0) throw new Error('數字不在範圍內');    return '★★★★★☆☆☆☆☆'.substring(5 - rating, 10 - rating );
}12345

能夠快速打印一個五分制的評分狀況。javascript

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

得到一個10位長度的隨機字符串css


你見過哪些令你瞠目結舌的 JavaScript 代碼技巧?



3.
java

你見過哪些令你瞠目結舌的 JavaScript 代碼技巧?



4.貼一個在《JavaScript 忍者祕籍》裏看到的技巧:
promise

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);
    };
}12345678910

你能猜到這個函數的用處麼網絡

5.膛目結舌算不上, 可是個實用的小技巧.app

數字補零:dom

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

或者特殊狀況:ide

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

主流 Promise 實現中的 each helper 也頗有意思:函數

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

還有個有意思的應用是 toString 配合 join:this

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('&'));123456789101112131415161718

【免責聲明:本文圖片及文字信息均由千鋒重慶Java培訓小編轉載自網絡,旨在分享提供閱讀,版權歸原做者全部,若有侵權請聯繫咱們進行刪除。】

相關文章
相關標籤/搜索