js 代码简写

·  阅读 72

为多个变量赋值

// 常规写法 
let a, b, c; 
a = 5; 
b = 8; 
c = 12;
 
// 简写
let [a, b, c] = [5, 8, 12];
复制代码

&& 短路求值

常规写法

let sum = 0
for (let i = 0; i < 5; i++) {
  if (isEvent(i)) {
    sum += i
  }
}

function isEvent (n: number) {
  if (n % 2 === 0) return true
  return false
}
console.log('sum', sum)
复制代码

简写

let sum = 0
for (let i = 0; i < 5; i++) {
  isEvent(i) && (sum += i)
}

function isEvent (n) {
  if (n % 2 === 0) return true
  return false
}
console.log('sum', sum)
复制代码

交换两个变量的值

let x = 'Hello', y = 55; 

// 常规写法,引入第三个变量
const temp = x; 
x = y; 
y = temp; 

// 简写,使用数组解构赋值
[x, y] = [y, x];

复制代码

箭头函数

// 常规写法
function add(num1, num2) { 
   return num1 + num2; 
} 

// 简写
const add = (num1, num2) => num1 + num2;

复制代码

多条件检查

// 常规写法
if (value === 1 || value === 'one' || value === 2 || value === 'two') { 
     // 执行一些代码
} 

// 简写1
if ([1, 'one', 2, 'two'].indexOf(value) >= 0) { 
    // 执行一些代码 
}
// 简写2
if ([1, 'one', 2, 'two'].includes(value)) { 
    // 执行一些代码 
}

复制代码

数组中的最大最小值

// 简写
const arr = [2, 8, 15, 4]; 
Math.max(...arr);  // 最大值 15 
Math.min(...arr);  // 最小值 2

复制代码

合并数组

let arr1 = [20, 30]; 
let arr2 = [60, 80]
// 常规写法
let arr3 = arr1.concat(arr2); 
// [20, 30, 60, 80] 

// 简写
let arr3 = [...arr1, ...arr2]; 
// [20, 30, 60, 80]

复制代码

单层次对象的深拷贝

即没有嵌套对象,那么我们也可以使用展开操作符(...)进行深拷贝

        let obj = { x: 20, y: 'hello' };
        const cloneObj = { ...obj };
        cloneObj.x = 200
        console.log('obj', obj); //{ x: 20, y: 'hello' }
        console.log('cloneObj', cloneObj); //{ x: 200, y: 'hello' }
复制代码
分类:
前端
标签:
分类:
前端
标签: