JavaScript 有用的代码片段和 trick(3)
测试质数
function isPrime(n) {
return !(/^.?$|^(..+?)\1+$/).test('1'.repeat(n))
}
统计字符串中相同字符出现的次数
var arr = 'abcdaabc';
var info = arr
.split('')
.reduce((p, k) => (p[k]++ || (p[k] = 1), p), {});
console.log(info); //{ a: 3, b: 2, c: 2, d: 1 }
使用 void0来解决 undefined被污染问题
undefined = 1; !!undefined; // true !!void(0); // false
单行写一个评级组件
"★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate);
JavaScript 错误处理的方式的正确姿势
try {
something
} catch (e) {
window.location.href =
"http://stackoverflow.com/search?q=[js]+" +
e.message;
}
匿名函数自执行写法
( function() {}() );
( function() {} )();
[ function() {}() ];
~ function() {}();
! function() {}();
+ function() {}();
- function() {}();
delete function() {}();
typeof function() {}();
void function() {}();
new function() {}();
new function() {};
var f = function() {}();
1, function() {}();
1 ^ function() {}();
1 > function() {}();
两个整数交换数值
var a = 20, b = 30; a ^= b; b ^= a; a ^= b; a; // 30 b; // 20
数字字符转数字
var a = '1'; +a; // 1
最短的代码实现数组去重
[...new Set([1, "1", 2, 1, 1, 3])]; // [1, "1", 2, 3]
用最短的代码实现一个长度为m(6)且值都n(8)的数组
Array(6).fill(8); // [8, 8, 8, 8, 8, 8]
将argruments对象转换成数组
var argArray = Array.prototype.slice.call(arguments); // ES6: var argArray = Array.from(arguments) // or var argArray = [...arguments];
获取日期时间缀
// 获取指定时间的时间缀
new Date().getTime();
(new Date()).getTime();
(new Date).getTime();
// 获取当前的时间缀
Date.now();
// 日期显示转换为数字
+new Date();
内容版权声明:除非注明,否则皆为本站原创文章。
