js中的一些简洁语句
1.通过条件判断给变量赋值布尔值的正确姿势
if(a === 'a'){
b = true
} else {
b = false
}
// 改成
b = a === 'a'
2.在if中判断数组长度不为零的正确姿势
if(arr.length !== 0){}
//改成
if(arr.length){}
3.使用includes简化if判断
if(a === 1 || a === 2 || a === 3 || a === 4){}
//改成 => 巧用数组方法
if([1,2,3,4].includes(a)){}
4.使用some方法判断是否有满足条件的元素
let arr = [1,3,5,7];
function isHasNum(n){
for(let i = 0; i < arr.length; i++){
if(arr[i] === n){
return true;
}
}
return false;
}
//改成
let arr = [1,3,5,7];
let isHasNum = (n,arr) => arr.some(num => num === n)
5.使用forEach方法遍历数组,不形成新数组
for(let i = 0; i < arr.length; i++){
arr[i].key = 2
}
// 改成
arr.forEach(item => {
item.key = 2
})
6.使用filter方法过滤原数组,形成新数组
let arr = [1, 3, 5, 7], newArr = []
for (let i = 0; i < arr.length; i ++) {
if (arr[i] > 4) {
newArr.push(arr[i])
}
}
// 改成
let arr = [1,3,5,6];
let newArr = arr.filter(n => n > 4)
7.使用map对数组中所有元素批量处理,形成新数组
let arr = [1,3,5,7] , newArr = [];
for (let i = 0; i < arr.length; i ++) {
newArr.push(arr[i] + 1)
}
//改成
let arr = [1,3,5,7];
let newArr = arr.map(n => n + 1) // [2,4,6,8]
8.解构对象
setForm(person){
this.name = person.name ;
this.age = person.age ;
}
// 改成
setForm ({name,age}){
this.name = name ;
this.age = age ;
}
9.解构时重命名简化命名
getForm (data){
this.one = data.aaa_bbb_ccc_ddd;
this.two = data.ccc_ddd_eee_fff;
}
// 改成
getForm(aaa_bbb_ccc_ddd,ccc_ddd_eee_fff){
this.one = aaa_bbb_ccc_ddd;
this.two = ccc_ddd_eee_fff
}
// 更优解
getForm({aaa_bbb_ccc_ddd:one,ccc_ddd_eee_fff:two}){
this.one = one ;
this.two = two ;
}
10.解构时设置默认值
getForm({name,age}){
if(!age) age = 16 ;
this.name = name ;
this.age = age ;
}
// 改成
getForm({name ,age = 16}){
this.name = name ;
this.age = age ;
}
11. ||短路符设置默认值
let person ={
name : '张三',
age : 39
}
// 改成
let name = person.name || '张三'
12.&&短路符判断依赖的键是否存在防止报错’xxx of undfined’
let person = {
name: '张三',
age: 38,
children: {
name: '张小三'
}
}
// 改成
let childrenName = person.children && person.childre.name
13.函数参数校验
let findStudentByAge = (arr,age) => {
if(!age) throw new Error('参数不能为空')
return arr.filter(num => num === age)
}
// 改成
let checkoutType = () => {
throw new Error('参数不能为空')
}
let findStudentByAge = (arr,age = checkoutType ()) => arr.filter(num => num === age)