- 數(shù)字補0操作
slice和padStart方法
const addZero1 = (num, len = 2) => (`0${num}`).slice(-len)
const addZero2 = (num, len = 2) => (`${num}`).padStart(len, '0')
addZero1(3) // 03
addZero2(32,4) // 0032
- 判斷奇偶數(shù) & 1
const num=3;
!!(num & 1) // true
!!(num % 2) // true
- 取整 | 0
1.5 | 0 // 1
1.2 | 0 // 1
-1.9 | 0 // -1
- 使用Boolean過濾數(shù)組中的所有假值
const compact = arr => arr.filter(Boolean)
compact([0, 1, false, 2, '', 3, 'a', 'e' * 23, NaN, 's', 34])
// [ 1, 2, 3, 'a', 's', 34 ]
- 判斷數(shù)字
function isNumber(obj) {
return obj === +obj
}
- 判斷字符串
function isString(obj) {
return obj === obj + ''
}
- 判斷布爾類型
function isBoolean(obj) {
return obj === !!obj
}
- 對象屬性的縮寫(es6)
const obj = { x:x, y:y };
// 等同于
const obj = { x, y };
- if .. else -> 優(yōu)化 -> 三目運算
let big;
if (x > 10) {
big = true;
} else{
big = false;
}
let big = x > 10 ? true : false; //三目運算
- charAt的簡化
"myString".charAt(0);
//簡化
"myString"[0]; //返回'm'
- ~ 的神奇用法
(~arr.indexOf('zank') ) 等價于 (arr.indexOf('zank')>-1)
- 字符串轉(zhuǎn)JSON的方式,
常規(guī)的有JSON.parse(string)和eval("("+string+")"),還有一小眾用法
let json = (new Function("return " + string))(); //還可用于字符串轉(zhuǎn)數(shù)組等
- 用數(shù)組交換兩變量的值
var a=1,
b=2;
a=[b,b=a][0]志鹃;
- 時間取值
new Date - 0;
//等同于
new Date().getTime();
- 判斷瀏覽器是否IE
ie11 = !!window.MSInputMethodContext;
參考鏈接:如何判斷是什么瀏覽器
JavaScript 復(fù)雜判斷的更優(yōu)雅寫法
僅供自娛自樂,不定期整理聋丝。