- 三元运算符简化条件判断
let result;
if (someCondition) {
result = 'yes';
} else {
result = 'no';
}
const result = someCondition ? 'yes' : 'no';
- 空值合并运算符
const name = user.name !== null && user.name !== undefined ? user.name : 'default';
const name = user.name ?? 'default';
- 可选链操作符
const street = user && user.address && user.address.street;
const street = user?.address?.street;
- 数组去重
function unique(arr) {
return arr.filter((item, index) => arr.indexOf(item) === index);
}
const unique = arr => [...new Set(arr)];
- 快速取整
const floor = Math.floor(4.9);
const floor = ~~4.9;
- 合并对象
const merged = Object.assign({}, obj1, obj2);
const merged = {...obj1, ...obj2};
- 短路求值
if (condition) {
doSomething();
}
condition && doSomething();
- 默认参数值
function greet(name) {
name = name || 'Guest';
console.log(`Hello ${name}`);
}
const greet = (name = 'Guest') => console.log(`Hello ${name}`);
- 解构赋值

- 字符串转数字

- 多重条件判断

- 快速幂运算

- 对象属性简写

- 数组映射

- 交换变量值

- 动态对象属性
const obj = {};
obj[dynamic + 'name'] = value;
const obj = {
[`${dynamic}name`]: value
};