在 ECMAScript(JavaScript)中,“简化代码结构”通常可以从语法简化、逻辑抽象、模块化、函数式风格等几个层面来做。下面按实用程度给你一个清单式总结,并附代码示例。
const / let避免 var,减少作用域问题。
// 旧
var a = 1;
var b = 2;
// 新
const a = 1;
let b = 2;
减少 function 和 this 问题。
// 旧
function add(a, b) {
return a + b;
}
// 新
const add = (a, b) => a + b;
减少临时变量。
const user = { name: 'Tom', age: 18 };
// 旧
const name = user.name;
const age = user.age;
// 新
const { name, age } = user;
数组:
const [x, y] = [1, 2];
...合并、拷贝更直观。
const a = [1, 2];
const b = [...a, 3];
const obj = { ...user, age: 20 };
function fn(opts = {}) {}
避免层层 if。
// 复杂
function check(user) {
if (user) {
if (user.age > 18) {
return true;
}
}
return false;
}
// 简化
function check(user) {
if (!user || user.age <= 18) return false;
return true;
}
?. 和 ??const name = user?.profile?.name ?? '匿名';
const formatPrice = n => `¥${n.toFixed(2)}`;
const filterActive = list =>
list.filter(x => x.status === 'active');
// for 循环
const res = [];
for (const i of arr) {
if (i > 0) res.push(i * 2);
}
// 简化
const res = arr.filter(i => i > 0).map(i => i * 2);
// utils.js
export const sum = (a, b) => a + b;
// main.js
import { sum } from './utils.js';
// 旧
fetch(url).then(r => r.json()).then(data => {});
// 新
const data = await fetch(url).then(r => r.json());
function getUserName(users, id) {
for (let i = 0; i < users.length; i++) {
if (users[i].id === id) {
return users[i].name;
}
}
return '';
}
const getUserName = (users, id) =>
users.find(u => u.id === id)?.name ?? '';
能用表达式就别用语句,能扁平就别嵌套,能复用就别复制。
如果你有具体代码,我可以直接帮你“瘦身 rewrite”。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。