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();
内容版权声明:除非注明,否则皆为本站原创文章。