1.if多条件判断
if (x === 'abc' || x === 'def' || x === 'ghi') // 简化 if(['abc','def','ghi'].includes(x))
2.if...else
let x if (x > 10) { test = true } else { test = false } // 简介 let test = x > 10
3.给多个变量赋值
let a, b, c; a = 5; b = 10; c = 15; // 简写 let [a,b,c]=[5,10,15]
4.与短路运算符
if (isLoggedin) { go() } // 简写 isLoggedin && go()
5.交换两个变量:平常我们都是使用三个变量来进行交换两个变量的值,在这里我们可以使用数组解构来交换两个变量的值
let x = 'hello', y = 55 const temp = x x = y y = temp // 简写 ;[x, y] = [y, x]
6.自定义深拷贝的方法
var common_deepClone = function deepClone(obj) { // 将object原型上的toString赋值给_toString var _toString = Object.prototype.toString; // null, undefined, non-object, function // 如果传递进来的对象为空,或者传进来的参数不是对象,直接返回该对象 if (!obj || _typeof(obj) !== 'object') { return obj; } // DOM Node // object.nodeType返回的是节点的类型,如元素,属性,注释 // 如果他是dom节点类型并且它可以被复制 if (obj.nodeType && 'cloneNode' in obj) { return obj.cloneNode(true); } // Date // 如果判断的是时间类型,就返回一个新的时间 if (_toString.call(obj) === '[object Date]') { return new Date(obj.getTime()); } // RegExp // 如果返回的是正则表达式 if (_toString.call(obj) === '[object RegExp]') { var flags = []; if (obj.global) { flags.push('g'); } if (obj.multiline) { flags.push('m'); } if (obj.ignoreCase) { flags.push('i'); } return new RegExp(obj.source, flags.join('')); } // 如果参数是数组类型就设置一个空的数组,否则就判断对象的构造器类型,然后根据他的构造器来创建一个新的对象(可能是自定义的对象) var result = Array.isArray(obj) ? [] : obj.constructor ? new obj.constructor() : {}; for (var key in obj) { result[key] = deepClone(obj[key]); } // 返回结果 return result; };
7,解构对象给另一个对象
/** * 解构对象给另一个对象 * @param {Oject} obj 赋值对象 * @param {Oject} data 解构对象 * @param {Array} arr 解构参数 */ var parseObj = function parseObj(obj, data, arr) { // let obj = {} arr.forEach(function (item) { data[item] ? obj[item] = data[item] : ''; }); };
8.时间戳转换为 yyyy-MM-dd日期格式
/** * 时间戳转换为 yyyy-MM-dd日期格式 * @param timestamp 时间戳 * 注意! 项目需要,只精确到月份 */ export function timestampToTime (timestamp) { var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000 var Y = date.getFullYear() + "-"; var M = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; var D = date.getDate() + " "; var h = date.getHours() + ":"; var m = date.getMinutes() + ":"; var s = date.getSeconds(); // return Y + M + D + h + m + s; // 暂时只需要 年月日 return Y + M; }