1、多行申明
let num = 0;let newColor = 'blue'let nameList = []/*----------这种,格式化后不再优雅------------*/let num=0, newColor = 'blue', nameList = [];//改成 ---/也罕用于两个变量值的替换let [ num,newColor,nameList ] = [ 0,'blue',[] ]
2、后盾参数状态码转换
switch(num){ case 0: status = '待处理' break; case 1: status = '解决中' break; case 2: status = '已解决' break;}//数字状态码转文字const status = ['待处理','解决中','已解决'][num]//文字转数字状态码const status = ['待处理','解决中','已解决'].indexOf('已解决')
3、属性名转中文
switch(str){ case "name": return '名称'; case "age": return '年龄'; case "city": return '城市' default: return '无此项'}//改成const newObj = { name:"名称", age:"年龄", city:"城市",}return newObj[str] || '无此项'
4、if 赋值语句改为三元表达式
if(code === 200){ tips = '上传胜利'}else{ tips = '上传失败'}//改成const tips = code === 200 ? '上传胜利' : '上传失败'
5、空值合并(0也算一个值)
if(num || num == 0){ return num}else{ return '-'}//改成 ---/ 如果 num 的值为 undefined 或 null 则返回 '-' 占位num ?? '-'
6、多个”或“判断
if(city == '深圳' || city == '广州' || city == '上海' || city == '北京'){}//改成if(['深圳','广州','上海','北京'].includes(city)){}
7、链式判断
const newObj = { name:"肥尸", address:{ street:"钵兰街" }}if(newObj && newObj.address && newObj.address.street){}//改成if(newObj?.address?.street){ alert('好家伙,肥尸你藏得够深啊~')}
8、对象合并---数组合并---数组去重
const params1 = { startTime:"", endTime:"",}const params2 = { ...params1, name:"",}const newArr1 = ['用户1','用户2','用户3']const newArr2 = [...newArr1,'用户4','用户5']const newArr3 = [1,1,2,2,3,3,4,5,6,6,7,8,8,9,10,10]const newArr4 = [...new Set(newArr3)]
9、对象构造
const newObj = { name:"脑中突然浮现出她的名字", age:22}const name = newObj.name;const age = newObj.age;//改成const { name,age } = newObj
10、Math办法
/* Math.floor 取整*/let num = 10.56Math.floor(num) //10~~num //10/* Math.pow 幂运算*/let [min,max] = [2,6]Math.pow(min,max) //64min**max //64
11、字符串补全长度
//前补齐 ---/罕用于对工夫位数的补齐'9'.padStart(2,'0') //09//后补齐'优'.padEnd(2,'等') //优等
12、最新的 ES2021 逻辑赋值运算符 ??= ,&&= 和 ||=
if(value){ value = value}else{ value = '默认值'}//等同value ??= '默认值'//例子10 ??= '默认值' //10null ??= '默认值' //默认值
其实都是一些 ES6/7/8/9/10/11/12新个性而已,我的项目中我也经常会用到,肯定水平上简化了代码量,看起来也优雅些。
互补倡议:前端开发标准>>>