Skip to content

JS 简写

三元运算符简化条件判断

js
// 传统写法
let result;
if (someCondition) {
    result = 'yes';
} else {
    result = 'no';
}

// 简写方式
const result = someCondition ? 'yes' : 'no';

空值合并运算符

js
// 传统写法
const name = user.name !== null && user.name !== undefined ? user.name : 'default';

// 简写方式
const name = user.name ?? 'default';

可选链操作符

js
// 传统写法
const street = user && user.address && user.address.street;

// 简写方式
const street = user?.address?.street;

数组去重

js
// 传统写法
function unique(arr) {
    return arr.filter((item, index) => arr.indexOf(item) === index);
}

// 简写方式
const unique = arr => [...new Set(arr)];

快速取整

js
// 传统写法
const floor = Math.floor(4.9);

// 简写方式
const floor = ~~4.9;

合并对象

js
// 传统写法
const merged = Object.assign({}, obj1, obj2);

// 简写方式
const merged = {...obj1, ...obj2};

短路求值

js
// 传统写法
if (condition) {
    doSomething();
}

// 简写方式
condition && doSomething();

默认参数值

js
// 传统写法
function greet(name) {
    name = name || 'Guest';
    console.log(`Hello ${name}`);
}

// 简写方式
const greet = (name = 'Guest') => console.log(`Hello ${name}`);

解构赋值

js
// 传统写法
const first = arr[0]
const second = arr[1]

// 简写方式
const [first, second] = arr;

字符串转数字

js
// 传统写法
const num = parseInt('123');

// 简写方式
const num = +'123';

多重条件判断

js
// 传统写法
if (value === 1 || value === 2 || value === 3) {
  // ...

}

// 简写方式
if([1,2,3].includes(value)){
  // ...
}

快速幂运算

js
// 传统写法
Math.pow(2,3);

// 简写方式
2 ** 3;

对象属性简写

js
// 传统写法
const obj = {x:x, y:y};

// 简写方式
const obj = {x,y};

数组映射

js
// 传统写法
const numbers=[123];
const doubled=numbers.map(function(num){
  return num*2;
}):

// 简写方式
const doubled=numbers.map(num=>num*2);

交换变量值

js
// 传统写法
let temp = a;
a = b;
b = temp;

// 简写方式
[a,b]=[b,a];

动态对象属性

js
// 传统写法
const obj = {};
obj[dynamic + 'name'] = value;

// 简写方式
const obj = {
    [`${dynamic}name`]: value
};