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前端很难,在这里我想说其实不难,难的是现在教程弥漫,没有一套系统的教程以及学习的时候遇到问题无人解答,这种问题很好解决,大家可以添加下面这个前端解答裙,学习时遇到不会的可以在里面问,里面的前辈们都很好,无偿解答呢