单行写一个评级组件

定义一个变量score是1到5的值,然后执行上面代码,看图

"★★★★★☆☆☆☆☆".slice(5 - score, 10 - score);
复制代码

几个沙雕操作_java

什么插件跟这个比起来简直弱爆了!

几个沙雕操作_java_02

JavaScript 错误处理的方式的正确姿势

try {
something
} catch (e) {
window.location.href =
"http://stackoverflow.com/search?q=[js]+" +
e.message;
}

几个沙雕操作_java_03

匿名函数自执行

这么多写法你选择哪一种?我选择死亡。

( function() {}() );
( function() {} )();
[ function() {}() ];

~ function() {}();
! function() {}();
+ function() {}();
- function() {}();

delete function() {}();
typeof function() {}();
void function() {}();
new function() {}();
new function() {};

const f = function() {}();

1, function() {}();
1 ^ function() {}();
1 > function() {}();
// ...

几个沙雕操作_java_04

另外一种undefined

从来不需要声明一个变量的值是undefined,因为JavaScript会自动把一个未赋值的变量置为undefined。所有如果你在代码里这么写,会被鄙视的

const data = undefined;

但是如果你就是强迫症发作,一定要再声明一个暂时没有值的变量的时候赋上一个undefined。那你可以考虑这么做:

const data = void 0; // undefined

论如何优雅的取整

const a = ~~2.33

const b= 2.33 | 0

const c= 2.33 >> 0

几个沙雕操作_java_05

如何优雅的实现金钱格式化:1234567890 --> 1,234,567,890

用正则实现

const test1 = '1234567890'
const format = test1.replace(/\B(?=(\d{3})+(?!\d))/g, ',')

console.log(format) // 1,234,567,890

非正则的优雅实现:

 function formatCash(str) {
return str.split('').reverse().reduce((prev, next, index) => {
return ((index % 3) ? next : (next + ',')) + prev
})
}
console.log(formatCash('1234567890')) // 1,234

https://mp.weixin.qq.com/s/vyXyq2YO7dp-uq35WWPOvA