es10
1. Array.flat
有一个二维数组,想让他变成一维数组:
const arr = [1, 2, 3, [4, 5, 6]];
console.log(arr.flat()); // [ 1, 2, 3, 4, 5, 6 ]
还可以传参数,参数为降维的次数
const arr = [1, 2, 3, [4, 5, 6, [7, 8, 9]]];
console.log(arr.flat(2))[(1, 2, 3, 4, 5, 6, 7, 8, 9)];
如果传的是一个无限大的数字,那么就实现了多维数组(无论几维)降为一维数组
const arr = [1, 2, 3, [4, 5, 6, [7, 8, 9, [10, 11, 12]]]];
console.log(arr.flat(Infinity))[(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)];
2. Array.flatMap
现在给一个需求
let arr = ["科比 詹姆斯 安东尼", "利拉德 罗斯 麦科勒姆"];
将上面数组转为
["科比", "詹姆斯", "安东尼", "利拉德", "罗斯", "麦科勒姆"];
第一时间想到 map + flat
console.log(arr.map((x) => x.split(" ")).flat());
// [ '科比', '詹姆斯', '安东尼', '利拉德', '罗斯', '麦科勒姆' ]
flatMap 就是 flat + map,一个方法顶两个
console.log(arr.flatMap((x) => x.split(" ")));
// [ '科比', '詹姆斯', '安东尼', '利拉德', '罗斯', '麦科勒姆' ]
3. BigInt
BigInt 是 ES10 新加的一种 JavaScript 数据类型,用来表示表示大于 2^53 - 1 的整数,2^53 - 1 是 ES10 之前,JavaScript 所能表示最大的数字
const theBiggestInt = 9007199254740991n;
const alsoHuge = BigInt(9007199254740991);
// 9007199254740991n
const hugeString = BigInt("9007199254740991");
// 9007199254740991n
const hugeHex = BigInt("0x1fffffffffffff");
// 9007199254740991n
const hugeBin = BigInt(
"0b11111111111111111111111111111111111111111111111111111"
);
// 9007199254740991n
既然是 JavaScript 新的数据类型,那 typeof 是?
const bigNum = BigInt(1728371927189372189739217);
console.log(typeof bigNum); // bigint
JavaScript 有多少种数据类型,8 种,把 ES6 的 Symbol 和 ES10 的 BigInt 也加上去 31. Object.fromEntries
前面 ES8 的 Object.entries 是把对象转成键值对数组,而 Object.fromEntries 则相反,是把键值对数组转为对象
const arr = [
["name", "柯基"],
["age", 22],
["gender", "男"],
];
console.log(Object.fromEntries(arr)); // { name: '柯基', age: 22, gender: '男' }
他还有一个用处,就是把 Map 转为对象
const map = new Map();
map.set("name", "柯基");
map.set("age", 22);
map.set("gender", "男");
console.log(map); // Map(3) { 'name' => '柯基', 'age' => 22, 'gender' => '男' }
const obj = Object.fromEntries(map);
console.log(obj); // { name: '柯基', age: 22, gender: '男' }
4. String.trimStart && String.trimEnd
都知道 JavaScript 有个 trim 方法,可以清除字符串首尾的空格
const str = " 柯基 ";
console.log(str.trim()); // '柯基'
// trimStart和trimEnd用来单独去除字符串的首和尾的空格;
const str = " 柯基 ";
// 去除首部空格
console.log(str.trimStart()); // '柯基 '
// 去除尾部空格
console.log(str.trimEnd()); // ' 柯基'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南