ES6+语法记录
· includes
const mingzhu = ['西游记','红楼梦'] console.log( mingzhu.includes('西游记') ) // true console.log( mingzhu.includes('三国') ) // false
· ES8对象方法的扩展 Object.values()、Object.entries()、Object.getOwnPropertyDescriptors()
const school = { name: "SSS", cities: ['北京','上海','深圳'], xueke: ['前端','Java','大数据','运维'] } console.log( Object.keys(school) ) // 获取对象所有的键 console.log( Object.values(school) ) // 获取对象所有的值 console.log( Object.entries(school) ) // entries const m = new Map(Object.entries(school)); console.log( m.get('cities') ); console.log( Object.getOwnPropertyDescriptors(school) ) // 对象属性的描述对象 const obj = Object.create( null, { name: { value: 'SSS', // 设置值 writable: true, // 属性特性 configurable: true, // 属性特性 enumerable: true, // 属性特性 } } )
· ES9扩展运算符和rest参数
rest: ...NAME // 更多参数 扩展运算符: const mangsend = {...one, ...two, ...three, ...four} // 对象的合并
· ES9正则扩展 — 命名捕获分组
let str = '<a href="https://www.baidu.com">百度</a>' const reg = /<a href="(.*)">(.*)<\/a>/ // 提取url与标签文本 const result = reg.exec(str); console.log(result); // 数组, Arr[0]为整个, Arr[1]为url, Arr[2]为文本 let str = '<a href="https://www.baidu.com">百度</a>' const reg = /<a href="(?<url>.*)">(?<text>.*)<\/a>/ // 提取url与标签文本 const result = reg.exec(str); console.log(result); // groups.text: 百度 groups.url: https://www.baidu.com
· ES9正则断言
let str = "JS5201314你知道吗555啦啦啦"; // 声明字符串 const reg = /\d+(?=啦)/; // 正向断言 const result = reg.exec(str); console.log(result); // 正向断言 const reg = /(?<=吗)\d+/; // 反向断言 const result = reg.exec(str); console.log(result); // 反向断言
· ES9正则 dotAll 模式
// dot . 元字符(除换行符意外的任意单个字符) let str = `<ul><li><a>肖申克的救赎</a><p>2022-1-1</p></li><a>肖申克的救赎2</a><p>2022-1-12</p><li></li></ul>` const reg = /<li>\s+<a>(.*?)<\/a>\s+<p>(.*?)<\/p>/; // 声明正则 const result = reg.exec(str); // 执行匹配 console.log(result); // const reg = /<li>.*?<a>(.*?)<\/a>.*?<p>(.*?)<\/p></li>/gs; // dot let result; let data = []; while( result = reg.exec(str) ){ console.log(result); data.push({ title:result[1], time:result[2] }) } console.log(data);
· ES10 Object.fromEntries // 将二维数组转换为对象, ES8: Object.entries将对象转换为二维数组
// 二维数组 const result = Object.fromEntries([ ['name','SSS'], ['xueke','Java,大数据,前端,云计算'] ]); // Map const m = new Map(); m.set('name','AAA') const result = Object.fromEntries(m); console.log(result);
· ES10 trimStart trimEnd 清除字符串左右侧空白
· ES10 flat faltMap
// 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) ); // flat(深度) // flatMap const arr = [1,2,3,4]; const result = arr.flatMap(item => item*10) cosnole.log(result); // [10,20,30,40]
· ES10 Symbol.prototype.description
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~