代码的套路简单点

  • 数字补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
  • 判断奇偶数 & 1
const num=3;
!!(num & 1)                    // true
!!(num % 2)                    // true
  • 取整 | 0
1.5 | 0         // 1
1.2 | 0         // 1
-1.9 | 0        // -1
  • 使用Boolean过滤数组中的所有假值
const compact = arr => arr.filter(Boolean)
compact([0, 1, false, 2, '', 3, 'a', 'e' * 23, NaN, 's', 34])
// [ 1, 2, 3, 'a', 's', 34 ]
  • 判断数字
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 -> 优化 -> 三目运算
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)   
  • 字符串转JSON的方式,
常规的有JSON.parse(string)和eval("("+string+")"),还有一小众用法
let json = (new Function("return " + string))();  //还可用于字符串转数组等
  • 用数组交换两变量的值
var a=1,
    b=2;
a=[b,b=a][0];
  • 时间取值
new Date - 0;
//等同于
new Date().getTime();
  • 判断浏览器是否IE
ie11 = !!window.MSInputMethodContext;

参考链接:如何判断是什么浏览器

JavaScript 复杂判断的更优雅写法

仅供自娱自乐,不定期整理。

你可能感兴趣的:(代码的套路简单点)