在开发过程中,因为谋求开发速度,咱们往往很多时候都没有留神代码的可读性与性能,这里介绍几个技巧,让你写出可读性强、简洁的js代码

1、多个条件满足之一时,举荐应用Array.includes

// 优化前function test(val) {    if (val === 'js' || val === 'java' || val === 'python') {        console.log('编程语言')    }}// 优化后function test(val) {    cosnt arr = ['js', 'java', 'python']    if (arr.includes(val)) {        console.log('编程语言')    }}

2、缩小嵌套,尽早返回

// 优化前function test(val) {    if (val) {        if (val === 'js') {            console.log(val)        } else {            console.log('其余')        }    } else {        return    }}// 优化后function test(val) {    if (!val) return    val === 'js' ? console.log(val) : console.log('其余')}

3、应用函数的默认参数与解构

// 优化前function test(val, num) {    const item = num || 1    console.log(`this is ${item}${val}`)}test('js', 4)// 优化后function test(val, num = 1) {    console.log(`this is ${num}${val}`)}test('java', 4)

如果默认参数是对象呢?咱们就能够应用解构了

// 优化前function test(val) {    if (val && val.name) {        console.log(val.name)    } else {        console.log('null')    }}test({name: 'js', num: 1})// 优化后function test({name} = {}) {    console.log(name)}test({name: 'js', num: 1})

4、应用map或者对象字面量代替switch语句

// 优化前function test(num) {    switch(num) {        case 1:            return ['js', 'java']        case 2:            return ['python', 'ruby']        case 3:            return ['php', 'c#']        default    }    conosle.log(num)}test(1)// 优化后,对象字面量形式function test(num) {    const arr = {        1: ['js', 'java'],        2: ['python', 'ruby'],        3: ['php', 'c#'],    }    console.log(arr[num])}test(1)// map形式function test(num) {    const arr = new Map()        .set(1, ['js', 'java'])        .set(2, ['python', 'ruby'])        .set(3, ['php', 'c#'])    console.log(arr.get(num))}test(1)

5、应用Array.every()或者Array.some()

// 优化前const item = [    {name: 'js', num: 2},    {name: 'java', num: 4},    {name: 'pyton', num: 2},    {name: 'php', num: 1},]function test() {    let isNumTwo = true    for (let val of item) {        if (!isNumTwo) break        isNumTwo = (val.num === 2)    }    console.log(isNumTwo)  // false}test()// 优化后const item = [    {name: 'js', num: 2},    {name: 'java', num: 4},    {name: 'pyton', num: 2},    {name: 'php', num: 1},]function test() {    const isNumTwo = item.some(val => val.num === 2)    console.log(isNumTwo)  // true}test()