es10
好的!ES10 指的是 ECMAScript 2019(ES2019),它是 JavaScript 语言的第 10 个主要版本。以下是 ES10 中引入的一些重要特性,用中文解释:
-
Array.prototype.flat()和Array.prototype.flatMap()flat(depth): 将嵌套数组(多维数组)“扁平化”成一个新数组。depth参数指定要扁平的嵌套层数(默认是 1,Infinity表示全部扁平)。const arr = [1, 2, [3, 4, [5, 6]]]; arr.flat(); // [1, 2, 3, 4, [5, 6]] (默认 depth=1) arr.flat(2); // [1, 2, 3, 4, 5, 6] (depth=2)flatMap(callback): 先对数组的每个元素执行一个映射函数(就像map),然后将结果数组扁平化一层(相当于map+flat(1))。非常高效。const arr = ["hello world", "es10 is cool"]; arr.flatMap(str => str.split(' ')); // ["hello", "world", "es10", "is", "cool"] // 等价于 arr.map(str => str.split(' ')).flat()
-
Object.fromEntries(iterable)- 将键值对列表(如
Map、Array的项是[key, value]的数组)转换成一个新的对象。是Object.entries(obj)的逆操作。const entries = [['name', 'Alice'], ['age', 30]]; const obj = Object.fromEntries(entries); // { name: "Alice", age: 30 } const map = new Map([['id', 123], ['title', 'ES10']]); const objFromMap = Object.fromEntries(map); // { id: 123, title: "ES10" }
- 将键值对列表(如
-
String.prototype.trimStart()和String.prototype.trimEnd()trimStart(): 移除字符串开头的空白字符(空格、制表符、换行符等)。trimEnd(): 移除字符串末尾的空白字符。- 它们分别有别名
trimLeft()和trimRight()(功能相同,但标准推荐使用trimStart/End)。const str = " Hello ES10! "; str.trimStart(); // "Hello ES10! " str.trimEnd(); // " Hello ES10!" str.trim(); // "Hello ES10!" (移除两端,ES5 已有)
-
可选的
catch绑定 (Optional Catch Binding)-
允许在
try...catch语句中省略catch后面的括号和错误变量绑定,如果你不需要访问错误对象的话。// ES10 之前 (必须绑定 error 变量) try { // ... 可能出错的代码 } catch (error) { // 即使不需要 error 对象,也必须写 console.log('Something went wrong'); } // ES10 允许省略 try { // ... 可能出错的代码 } catch { // 没有 (error) 了 console.log('Something went wrong, but I don\'t care about the details'); }
-
-
Symbol.prototype.description- 提供一个只读属性,用于获取
Symbol创建时传入的可选描述字符串。之前需要通过toString()方法间接获取描述,现在更直接方便。const sym = Symbol('This is a description'); console.log(sym.description); // "This is a description" const sym2 = Symbol(); console.log(sym2.description); // undefined
- 提供一个只读属性,用于获取
-
JSON超集 (JSON Superset)- 修正了 ECMAScript 字符串字面量语法与 JSON 字符串语法的一个微小差异:现在允许在字符串字面量中使用未转义的行分隔符 (
U+2028) 和段落分隔符 (U+2029) 字符。这使得 ECMAScript 成为 JSON 的严格超集,意味着任何有效的 JSON 文本现在也是语法上有效的 ECMAScript 代码(当解析为字符串时)。这主要解决了之前在这些字符出现在 JSON 字符串中时可能导致解析错误的问题。
- 修正了 ECMAScript 字符串字面量语法与 JSON 字符串语法的一个微小差异:现在允许在字符串字面量中使用未转义的行分隔符 (
-
格式良好的
JSON.stringify()(Well-formed JSON.stringify())- 改进了
JSON.stringify()在处理代理对(Surrogate Pairs,用于表示 Unicode 补充平面字符如 emoji)时的行为。如果输入包含单独出现的代理项(即不成对的代理项,这是无效的 UTF-8/UTF-16),ES10 规定JSON.stringify()会返回一个未定义的 Unicode 转义序列 (\uFFFD,即替换字符 �),而不是可能产生无效的 UTF-8 输出。这确保了输出的字符串始终是格式良好的 UTF-8。
- 改进了
-
Function.prototype.toString()修订- 要求
toString()方法返回函数源代码的精确文本,包括原始的空格、注释和语法细节(如function关键字后的空格)。之前的标准允许引擎在实现上有一定的自由度,可能省略注释或空白。这个修订使得函数的字符串表示更加可靠和一致,有助于调试和代码分析工具。function /* a comment */ foo() {} console.log(foo.toString()); // ES10: 应输出包含注释的完整源代码 "function /* a comment */ foo() {}"
- 要求
-
Array.prototype.sort()稳定性 (Stable Sort)- 规定数组的
sort()方法必须使用稳定的排序算法。稳定排序意味着如果两个元素在排序依据上相等,那么它们在排序后数组中的相对顺序会保持与排序前相同。这对于依赖元素原始顺序的场景(如多条件排序)非常重要。现代浏览器引擎基本都已实现稳定排序(如 TimSort),ES10 将其纳入语言规范进行保证。
- 规定数组的
总结:
ES10 (ES2019) 主要关注提升开发者的便利性(flat, flatMap, trimStart/End, fromEntries, 可选 catch 绑定, Symbol.description)、解决语言规范细节问题(JSON 超集、格式良好的 stringify、函数 toString 精确性)以及保证重要内置方法的行为(稳定的 Array.sort)。这些特性让 JavaScript 代码更简洁、更健壮、更可预测。
AI赋能 车行无忧|腾视科技ES10终端,为车辆装上“智慧大脑”
腾视科技,以车载智能领域深耕多年的技术积淀,破局而出! 专为特种车辆与复杂作业场景量身打造的ES10车载智能终端,以超强环境适应性(-30℃~75℃宽温运行)、多算法协同防护(AI实时预警
2025-10-28 10:15:35
AI赋能 车行无忧|腾视科技ES10终端,为车辆装上“智慧大脑”
,破局而出! 专为特种车辆与复杂作业场景量身打造的ES10车载智能终端,以超强环境适应性(-30℃~75℃宽温运行)、多算法协同防护(AI实时预警+边缘计算决策)、丰富扩展能力(多传感器融合)三大核心优势,重构车载安全管理范式。
2025-10-28 10:12:25
车载智能终端ES10
1970-01-01 08:00:00 至 1970-01-01 08:00:00
es8316音频解码芯片中文数据手册
es8316是什么芯片?ES8316音频编解码器具有低功耗的特性,具有单声道ADC和立体声DAC。可用于模拟话筒(如驻极体话筒)录音或数字话筒录音,在ES
资料下载
jfsteve
2022-04-15 10:44:48
物料申报表:MDF_193720002_AS3701B-BWLM-ES_MD000333_1-00.pdf
MDF_193720002_AS3701B-BWLM-ES
资料下载
王平
2021-02-22 10:22:46
深度解读ES+Redis+MySQL的高可用架构设计
我们有两个机房,分别是机房 A 和机房 B。我们把 ES 主集群部署在机房 A,把 ES 备集群部署在机房 B。会员系统的读写都在 ES 主集群
2023-06-01 10:09:30
服务器专用万兆单向传输光纤网卡——FM-JL82599ES-TX/RX
飞迈瑞克FM-JL82599ES-TX/RX是一套服务器专用万兆单向传输光纤网卡,分别有10G单向发送网卡(FM-JL82599ES-TX)和
2019-11-08 15:54:13
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 芯片的工作原理是什么?
- ssd是什么意思
- 什么是蓝牙?它的主要作用是什么?
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- dtmb信号覆盖城市查询
- 怎样挑选路由器?
- 华为芯片为什么受制于美国?
- 元宇宙概念股龙头一览
- type-c四根线接法图解
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- BLDC电机技术分析
- 复位电路的原理及作用
- dsp是什么意思?有什么作用?
- iphone13promax电池容量是多少毫安
- 苹果无线充电器怎么使用?
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 传感器常见类型有哪些?
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机