#1077 WSL 检测到 localhost 代理配置

2025-09-04

Cygwin 实在是有点太慢了,忍不了,研究好几次也没有解决慢的问题,切入 WSL2 了。

但是留意到打开 WSL 总有这个警告:

wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。

按照 CSDN 上的文章,在用户目录下创建 .wslconfig

[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

PS: 按照文档下面 4 个已经不再是实验性了,应该放在 wsl2 Section 下。
PS:后面三个 true 配置是默认值,不需要。

配置之后,在 cmd 中执行 wsl --shutdown 重启一下,果然就不报了,但是 WSL 中无法使用公司的 VPN 连接内网。

根据文档,networkingMode 有四种取值:

  • none 关闭网络连接
  • nat NAT,默认值
  • mirrored
  • virtioproxy 使用 VirtioProxy 网络代理

发现只有 mirrored 配置才不打印警告信息,但是就是不能使用 VPN。

[wsl2]
networkingMode=mirrored

算了,还是忍忍吧。

#1076 进箱:电子邮件自动归类

2025-08-17

谷歌(Gmail)和苹果(Apple iCloud)

Gmail: Primary(主要) Social(社交) Updates(动态) “Forums(论坛) Promotions(推广)
Apple: Primary(主要) Transactions(交易) Updates(更新) Promotions(推广)

Gmail 和 Apple 分类比较类似:

  • 主要:个人邮件
  • 更新/动态:资讯、订阅
  • 推广:营销邮件

不同的是,谷歌搞了一个社交与论坛,因为他们有这方面的业务。
苹果则是单独列了一个交易,将订单、物流等邮件单独管理。

微软(Outlook)

  • 重点
  • 其他

这个归类方式就比较简单,可能和微软的在线业务不够丰富、市场占有率不够高(和谷歌、苹果相比)有关。

总结

这个分类就收益于 AI 的出现,体现了 ISP 对电子邮件内容的控制程度的升高。

#1075 给女儿讲的历法知识

2025-07-27

阳历、阴历、阴阳历

  • 公历(阳历):源于儒略历(公元前 45 年,由罗马皇帝凯撒推行),后演变为格里历(1582 年,由教皇颁布)。
  • 农历(阴阳历):兼顾太阳与月亮的运转规律,同时融入反映农作时间的二十四节气。
  • 伊斯兰历(阴历):是目前广泛使用的唯一纯阴历,与回归年偏差较大(例如今年元旦在冬季,数十年后元旦可能出现在夏季)。
    • 该历法以伊斯兰教先知穆罕默德于公元 622 年从麦加迁徙至麦地那为元年,为世界穆斯林通用,在中国亦被称为回历(是回族采用的传统历法)。

置闰规则

  • 公历:通过加入闰日实现闰年,每 4 年设一个闰日;若年份能被 100 整除,则不视为闰年。
  • 农历:闰年通过加入闰月实现。
  • 伊斯兰历:以加入闰日设置闰年,30 年中有 11 年为闰年,平年 354 天,闰年 355 天。

二十四节气

由于二十四节气是按照太阳的运行规律来划分的(太阳在黄道(地球围绕太阳公转的轨道)上的位置),用于指导农作,所以与公历日期相对固定(前后相差 1-2 天)。
将一个回归年 365 天均分为 24 等分,也就是每个节气 15 天。

节气 公历日期范围 含义(简要)
立春 2 月 3-5 日 春季开始,万物复苏。
雨水 2 月 18-20 日 气温回升,降雨增多,利于作物生长。
惊蛰 3 月 5-7 日 春雷始鸣,冬眠动物苏醒。
春分 3 月 20-22 日 昼夜平分,春季过半。
清明 4 月 4-6 日 天气清朗,草木繁茂,扫墓祭祖时节。
谷雨 4 月 19-21 日 雨水充足,谷类作物茁壮成长。
立夏 5 月 5-7 日 夏季开始,万物进入生长旺季。
小满 5 月 20-22 日 北方麦类灌浆饱满,南方夏收作物即将成熟。
芒种 6 月 5-7 日 麦类成熟收割,晚稻等作物播种,“忙种”之意。
夏至 6 月 21-22 日 白昼最长,黑夜最短,盛夏开始。
小暑 7 月 6-8 日 天气炎热,但未到最热。
大暑 7 月 22-24 日 一年中最热的时期,高温多雨。
立秋 8 月 7-9 日 秋季开始,气温逐渐下降。
处暑 8 月 22-24 日 暑气结束,天气转凉。
白露 9 月 7-9 日 气温降低,早晚露水凝结成白色。
秋分 9 月 22-24 日 昼夜再次平分,秋季过半。
寒露 10 月 8-9 日 气温更低,露水带寒意,即将入冬。
霜降 10 月 23-24 日 开始出现霜冻,作物需防冻。
立冬 11 月 7-8 日 冬季开始,万物收藏。
小雪 11 月 22-23 日 气温下降,开始降雪,但雪量较小。
大雪 12 月 6-8 日 雪量增多,气温显著降低。
冬至 12 月 21-23 日 白昼最短,黑夜最长,寒冬来临,此后白昼渐长。
小寒 1 月 5-7 日 天气寒冷,但未到最冷。
大寒 1 月 20-21 日 一年中最冷的时期,寒风凛冽。

#1074 17 种基本粒子

2025-07-26

根据粒子物理学的标准模型,基本粒子是构成物质的最基本单元,可分为费米子(构成物质)和玻色子(传递相互作用)两大类。以下是 17 种基本粒子的分类及简介:

一、费米子(物质粒子)

费米子是构成物质实体的基本粒子,自旋为半整数,遵循泡利不相容原理,共 12 种。

  1. 夸克(6 种)

    • 上夸克(u):电荷 +2/3,质量最轻,构成质子和中子。
    • 下夸克(d):电荷 -1/3,与上夸克共同组成原子核。
    • 粲夸克(c):电荷 +2/3,质量约 1.27 GeV,存在于高能粒子碰撞中。
    • 奇夸克(s):电荷 -1/3,参与形成 K 介子等。
    • 顶夸克(t):电荷 +2/3,质量最大(约 172 GeV),寿命极短。
    • 底夸克(b):电荷 -1/3,质量约 4.2 GeV,常见于 B 介子。
  2. 轻子(6 种)

    • 电子(e⁻):电荷 -1,参与化学反应与电流传导。
    • μ 子:电荷 -1,质量约为电子的 207 倍,不稳定。
    • τ 子:电荷 -1,最重的轻子(质量约 1.78 GeV),迅速衰变。
    • 电子中微子(νₑ)、μ 子中微子(νμ)、τ 子中微子(ντ):电中性,质量近乎为零,几乎不与物质作用(“幽灵粒子”)。

二、玻色子(作用力粒子)

玻色子传递基本相互作用,自旋为整数,共 5 种(胶子虽为 8 种但归为 1 类):

  1. 规范玻色子(传递基本力)

    • 光子(γ):传递电磁力,无质量,电荷为零,形成光与电磁波。
    • 胶子(g):传递强力,无质量,通过“色荷”束缚夸克(共 8 种,但作为一类)。
    • W⁺/W⁻ 玻色子:传递弱力,质量约 80.4 GeV,导致原子衰变。
    • Z⁰ 玻色子:传递弱力,质量约 91.2 GeV,电中性。
  2. 希格斯玻色子(H⁰)

    • 通过希格斯场赋予其他粒子质量,自旋为 0,质量约 125 GeV/c²(2012 年由 LHC 发现)。

三、总结:17 种基本粒子列表

类别 粒子 数量 作用
夸克 u, d, c, s, t, b 6 构成质子、中子等强子
轻子 e⁻, μ⁻, τ⁻, νₑ, νμ, ντ 6 电子参与化学,中微子穿透性强
规范玻色子 γ, g, W⁺, W⁻, Z⁰ 5 传递电磁、强、弱力
希格斯粒子 H⁰ 1 赋予其他粒子质量

注:

  • 标准模型中,胶子实际有 8 种(对应强力的“色荷”组合),但通常归为 1 类。
  • 引力子(传递引力)尚未被实验证实,未计入标准模型。
  • 反粒子(如正电子)未单独列出,因它们与对应粒子质量相同、电荷相反。

四、超出标准模型的候选粒子

尽管标准模型已解释绝大多数现象,但以下粒子可能存在于更深层理论中:

  • 暗物质粒子(如轴子、WIMP):占宇宙物质的 27%,尚未直接探测。
  • 超对称粒子:理论预言每个标准模型粒子存在一个超对称伙伴(如“超电子”)。
  • 引力子:量子引力理论中的假设粒子。

未来实验(如更高能对撞机、中微子观测)或将揭示新物理规律。

#1073 周末流水账

2025-07-20

给女儿打样...

7/19 周六

上午爸爸带我和图图出门吃早餐,妈妈说她什么都不想吃,不要给她买。我们吃完回家的时候碰到妈妈,出门吃早餐 + 买菜。
妈妈不愿意出门,说是带孩子太累,要好好休息。爸爸带我和图图出门去附近的商场 “巡逻”,走 “百捷国际广场 - 友邻天地 - 世达广场” 路线。
百捷国际广场 和 友邻天地都是去看名创优品,常规操作,“不买只看看,名创也高兴”。世达广场就是去超市里面逛逛,图图在里面推着一个小车子跑来跑去都不愿回家。

中午吃饭之后,图图很早就去睡觉了,可能是上午一起出去消耗了太多体力。
妈妈陪图图在睡觉,爸爸说等他休息十分钟,然后带我去九凤头(徒步走过去,往返大概一小时路程),然后等图图一两个小时之后睡醒,再一起去武汉大学玩。
结果爸爸自己在床上玩手机睡着了,我只好一个人在看书、玩游戏。最后爸爸睡到图图都醒了,才被妈妈叫醒。我们只好跳过 Step1 九凤头,直接去 Step2 武汉大学。

我们一家四口(妈妈这个时候又愿意一起玩了),坐地铁到广埠屯,步行到武汉大学三门。没有带身份证,但是保安叔叔让我们填写表单,就放行了。
三门进入走的不是我和爸爸之前走的线路,爸爸要靠导航。因为已经五点四十了,爸爸直接导航到梅园教工食堂吃完饭。
墙上贴了一个不能使用支付宝微信的提醒,但实际上工作人员说可以用支付宝和微信。
爸爸选了好些食物,我记得有一个鸡腿,蒸蛋,小炒黄牛肉(可能),鹌鹑蛋,一碟炸虾(三个),还有一瓶百事可乐(玻璃瓶)和两个小盒装的蒙牛酸奶,一共三十几块钱。我和图图吃的很开心。
然后妈妈说挺好的,也去加了一些饭菜。
爸爸打菜时食堂几乎没有人,我们吃饭的时候陆陆续续来了不少人,等这个时候妈妈再去,她想要的鸡腿、牛肉都已经没有了。😂
里面还有两块腐乳,爸爸说不是老家的风味,倒像是 “炕豆腐”,非常咸。

吃完饭之后,我们四个一起去爬山。现在是夏天,虽然已经六点半了,但天还是非常亮。
我和妈妈一组,爸爸和图图一组,比赛谁先到山顶。
图图走的很慢,肯定是我们赢啊,就算爸爸抱,也肯定不如我和妈妈轻装上阵快。
爬了大概半个小时,爸爸指了一个石头,说这是最高的位置,确实也没有看到前面有继续往上的山坡。
我连忙冲过去,第一个站在石头上,正在高兴我们组赢了。但是爸爸抱着图图爬上来之后说他们组赢了,说如果是个人赛,那是我赢了,但是团队赛要看最后的那个人的成绩,这个时候妈妈还傻乎乎在后面慢慢走。
虽然不太服气,但是爸爸说的确实有道理,我只好承认他们赢了。
我继续提议,要比下山谁更快。有了前面的教训,我一直催妈妈快点,在我们的共同努力下,琪妈队终于获得胜利。

这个时候天色已经暗了下来,我们要回家了。
爸爸却带我们一起绕了一点远路到武汉大学牌楼那边拍照打卡。
因为背景有好些路灯,拍的效果总是不太好。而且还有不少可能是和我们一样来玩的人也在那里拍照。
总之,我们从牌楼旁边出武大(这是我们之前走的路线),然后走了大概十分钟到街道口站做地铁回家。
回到家的时候都十点半了。

7/20 周日

上午还是固定的行程,周三、周五、周日和第一医院医生约好的图图的语言康复课程,时间是 10:40 ~ 11:30。
出发之前,爸爸和妈妈规了去两江游览粤汉码头坐船(上次在红巷码头体验非常好,我们都很开心)。

我们在地铁站旁边的蔡林记吃的早餐,我吃的是包子、妈妈吃的是糊米粉、爸爸吃的是热干面、图图吃了我的一个包子还有妈妈的糊米粉(他出门之前已经喝了牛奶)。
吃完早饭之后,我们坐地铁到汉正街站,然后走一小段路就到医院了(大约一个小时)。
到医院之后,妈妈陪图图上课,爸爸带我读英语(爸爸在网上买的三年级英语课本)(爸爸非说是收获满满的速速大王英语时光,我说是痛苦时光)。

中午我们步行到医院附近的恒隆广场四楼吃了西贝。
我吃了番茄挂面,很好吃,和奶奶做的味道差不多美味。还吃了奶牛慕斯、还有橙子沙棘汁(?),都不错。
妈妈还点了一盘牛肉,128 元,占总餐费的一大半(总共 230 的样子),这点牛肉还挺贵的。爸爸给我夹了几块,但是我吃的时候发现里面有一些不是瘦肉的部分,就把这部分留给爸爸吃了。
快吃完的时候,妈妈带图图去上厕所,可能半个小时才回来。我和爸爸就一直在西贝里面聊天等他们。

离开西贝之后,爸爸带我去了旁边的一鹿有你,这是一家抓娃娃店,之前妈妈带我来过一次,这里抓到娃娃的几率比较大。
爸爸付了 100 元,买了 130 个币。这次汲取上次的教训,没有在机器上购买,而是找老板扫码购买,可以多一次转盘抽奖活动,我抽到了一个直接选一个娃娃的机会,我选了一个可爱的小羊羔。
最后我一共搞到十几个娃娃。其中有一个乌龟形状的小玩具被爸爸摔破了,真实太虾了。
妈妈说我们要做地铁,带太多娃娃不好拿,最后找老板用其中的 5 个娃娃(包括那个可爱的小羊)换了几个好拿的玩具。

还有意见事情值得一说,在我抓娃娃的时候,爸爸发现图图要拉屎(闻到臭味),妈妈带图图去厕所。但是过一会儿,爸爸发现店门口有一坨屎,不知道是不是图图刚掉下来的。
爸爸说如果是图图刚拉的,他肯定要处理,如果不是,他就不管。
最后在厕所那边和妈妈确认,妈妈说肯定是刚才抱图图的时候,图图从衣服里面掉出来的。爸爸就跑回去把这个粑粑用纸捡起来,并把地上擦干净了。
幸好,幸好还没有人踩到,我都不敢想象有人踩到的样子 😖。

图图拉完屎之后变得活力四射,不像刚才有点没精神。但是没有持续多久,我们在去地铁的路上,他就在推车中睡着了。
爸爸查了两江游览最早在七点钟开始,现在才两点多,爸爸和妈妈决定去坐地铁去粤汉码头,主要是地铁站比较凉快,适合图图睡觉。

图图大概没有睡一个小时就醒了,我们就离开了大智路地铁站,走路去码头。
路上看到一个蜜雪冰城买水喝,我们每人一杯,我依然是棒打鲜橙(常温三分糖),图图是柠檬水(常温无糖,后来爸爸妈妈喝了他剩下的一点点,发现没有糖的好酸)。
正在喝水的时候,妈妈说图图要拉尿了,于是爸爸就抱着图图拉尿,但是好久了都没有拉出来,图图都要哭了。爸爸就说算了,妈妈却怪爸爸不一鼓作气,最后又怪到奶奶,他们吵了起来。
最后我们没人说话一直走到码头那边,妈妈带我和图图在江边玩了一会儿才好。

这次坐的船是两江盘龙号,比上次坐的钟子期号大太多了,爸爸说有钟子期号两倍大(发船的时候,爸爸发现江边有一艘船是俞伯牙号,正好和钟子期号是一对,爸爸讲的那个知音的故事)。
船有三层,一楼是餐厅、二楼是客房、三楼是观景台。几乎所有乘客都坐在三楼看江景,爸爸也在最靠边上的一排选了四个位置。
我们在船上看风景,吃零食,非常开心。船一直从码头(大圆球)那个位置,穿过长江大桥,到鹦鹉洲长江大桥附近才返航。返航明显要快很多,可能着就是所谓 “归心似箭” 吧!
看到大桥下面有火车一直在通行,而且大桥看起来像是几个大墩子上搞的一个复杂的钢结构桥体。
对了,水里面有人在游泳,每个人身后都有一个橙色的球球,爸爸说这是跟屁虫,里面放水和食物、干衣服,也不知道是不是真的是这样。

船靠岸之后,我们为了节约时间,先打车到循礼门站,这样可以直接坐二号线直达友邻天地(坐出门的时候骑过来的电动车和自行车回家),不用换乘。
图图在地铁上又拉尿了,几乎每次坐地铁都拉尿。确实做地铁的时间有点长,图图又不会说话。怕捂出痱子来,天气太热就没有给图图穿尿不湿,可能坐公共交通还是得穿上,总是搞得地上很长的“尿流”,容易招人嫌弃,我们自己也尴尬。
PS:在船上,图图也拉了尿,在楼梯上。

到家很晚了,我们都很累,和昨天一样,洗了澡就睡觉了。

#1072 客户分级

2025-07-19
等级 英文名 消费区间 服务方式 响应时间 问题处理
钻石客户 ① Diamond 专属客户群 + 客户经理 + 技术专家 + 高管对接 ≤30 分钟 7×24
铂金客户 ② Platinum 1,000,000 专属客户群 + 客户经理 + 技术专家 ≤30 分钟 工作时间
黄金客户 ③ Gold 100,000 专属客户群 + 高级客服 ≤1 小时 每日同步
白银客户 ④ Silver 10,000 专属客户群 + 客服 ≤3 小时 专项跟进
青铜客户 ⑤ Bronze 1,000 工单系统 (免费额度) + 邮件/反馈系统 - -
黑铁客户 ⑥ Iron 100 工单系统 (免费额度) + 邮件/反馈系统 - -
基础客户 ⑦ Ordinary 0 工单系统 (付费) + 邮件/反馈系统 - -
  1. 每个季度初(1/1、4/1、7/1、10/1)根据上个季度的消费金额,系统自动计算客户等级。
  2. 商务部门可以手动指定客户等级(申请流程),优先级高于系统自动计算结果。
  3. 系统自动创建客户群,按照标准拉指定人员进群提供支持。
    如果客户等级下调,不符合建群标准,保留原权益一个月,然后通知客户,并在两周后将客户群冻结。
  4. 黄金、铂金、钻石客户问题专项跟进,每周总结,每月总结,季度总结,年度总结。

权益:

  • 知识库
  • 产品简报
  • 线上培训
  • 线下活动
  • 优惠券
  • 定制开发

Diamond
Platinum
Gold
Silver
Bronze
Iron
Basic

#1070 ES2025 新特性

2025-07-01

主要变化

异步处理改进

  • 新增 Promise.try () 方法 :用于统一封装同步返回值或抛错的函数,相比以往的 Promise.resolve ().then (fn) 或 new Promise (resolve => resolve (fn ())),Promise.try (fn) 更简洁高效。例如,对于一个可能会抛出异常的函数,使用 Promise.try () 可以更方便地进行错误处理。
  • 可立即抛出同步异常 :使用 Promise.try () 时,若函数同步抛出异常,能够立即捕获并处理,避免了使用 Promise.resolve ().then (fn) 时引入的微任务延迟,提高了错误可见性与调试效率,适用于封装第三方同步 API,使其具备统一的异步处理能力。

集合操作增强

  • 新增 Set 实例方法 :为 Set 实例新增了七个方法,包括集合运算方法 intersection ()(交集)、union ()(并集)、difference ()(差集)、symmetricDifference ()(对称差集),以及集合关系方法 isSubsetOf ()(是否为子集)、isSupersetOf ()(是否为超集)、isDisjointFrom ()(是否无交集),使集合操作更加方便快捷,符合数学上的集合运算逻辑。

迭代器功能扩展

  • 新增同步迭代器辅助函数 :为所有同步迭代器添加了一系列辅助方法,如 .map (fn)、.filter (fn)、.flatMap (fn)、.some (fn)、.every (fn)、.find (fn)、.reduce (fn, init)、.forEach (fn)、.drop (n)、.take (n)、.toArray () 等。这些方法支持链式调用,可用于链式处理可迭代对象的数据,实现惰性求值,避免创建多个中间数组,提升内存效率,特别适合处理大型或无限可迭代数据,如生成器、流数据等。

正则表达式增强

  • 新增 RegExp.escape () 方法 :可将字符串中的正则元字符转义,使其能够安全地嵌入正则表达式中,避免动态生成正则表达式时出现语法错误,防止正则注入漏洞,替代手动维护的转义函数。
  • 正则表达式内联标志 :允许在正则表达式内部使用内联语法 (?flags:...) 或 (?flags1-flags2:...) 以局部开启或关闭某些标志位,如 i、m、s 等。例如,在正则 /^x (?i:HELLO) x$/ 中,整个表达式外部没有 i 标志,而只对子串 HELLO 应用忽略大小写,避免了正则拆分与多轮匹配逻辑。
  • 重复命名捕获组 :允许在正则表达式的不同分支中使用相同的命名捕获组名称,只要这些同名组不可能同时匹配。这便于对形式不同但结构类似的文本进行统一处理,如解析多种日期格式、键值对格式等,可简化后续处理逻辑,避免代码冗余。

模块系统优化

新增导入属性,允许在 import 语句中指定附加信息,以指定如何加载模块,主要用于引入非 JavaScript 资源,如 JSON 文件或 CSS 模块。静态导入时,可在路径后加上 with 选项;动态导入时,将其放在第二个参数的 with 字段中,使用起来更加方便简洁,可直接像引用 JS 模块一样使用 JSON 数据等。

数值表示扩展

提供对 16 位浮点数的原生支持,包括 Float16Array、DataView.prototype.getFloat16 ()/setFloat16 () 以及 Math.f16round (number)。这在 WebGPU / WebGL 中可节省带宽与内存,在深度学习中便于传递模型参数,也可用于模拟硬件精度限制。

其他特性

  • 后置检查的声明式控制流 :引入了 checked { } 块和 assert 关键字,在 checked 块中的操作会在执行后立即检查是否出界等,assert 用于断言,若条件不成立会直接抛出异常,为开发者提供了更灵活的错误检查方式。
  • ArrayBuffer 的构造共享数组 :新增了 ArrayBuffer 构造函数的 shared 构造标志,可创建一个共享的 ArrayBuffer,其视图成为共享数组,所有代理都具有相同的内存视图,允许多个 JavaScript 工作线程之间共享和传递 ArrayBuffer,提高了数据共享和传递的效率。ÎÍ

历史变革

ECMAScript(简称 ES)作为 JavaScript 的标准化规范,自 1997 年发布首个版本以来,已经历了多次重要更新。下面为你介绍 ECMAScript 各主要版本及其核心变化:

  1. ES1(1997 年):这是 ECMAScript 的首个版本,它的制定参考了 JavaScript 1.1,是一个基础版本,为后续的发展奠定了基础。
  2. ES2(1998 年):此版本主要是为了使规范与 ISO/IEC 16262 国际标准保持一致,并没有对语言功能进行实质性的扩展。
  3. ES3(1999 年):这是一个具有重要意义的版本,引入了众多核心特性,包括正则表达式、try/catch 异常处理、do-while 循环以及更完善的字符串处理功能等,极大地丰富了 ECMAScript 的功能。
  4. ES4(未发布):该版本计划进行大幅更新,但由于各方在设计理念上存在较大分歧,最终未能正式发布。
  5. ES5(2009 年):引入了严格模式(strict mode),对 JSON 对象进行了标准化,还新增了数组方法(如 forEach、map、filter)和 Object.defineProperty 等特性,提升了代码的规范性和可维护性。
  6. ES5.1(2011 年):这是一个修正版本,主要是对 ES5 的规范进行了澄清和完善,使其更加严谨。
  7. ES6(ES2015):带来了众多革命性的特性,如箭头函数、let/const 块级作用域、Promise 异步编程、class 类和继承、模块系统(import/export)以及解构赋值等,使 ECMAScript 的语法更加现代化。
  8. ES2016(ES7):新增了数组 includes 方法和指数运算符(**),进一步扩展了 ECMAScript 的功能。
  9. ES2017(ES8):引入了 async/await 异步编程模式、Object.values/entries、字符串填充(padStart/padEnd)以及共享内存和原子操作等特性,提升了异步编程的便利性。
  10. ES2018(ES9):支持异步迭代器、Rest/Spread 属性、Promise.finally 以及正则表达式的一些增强功能,如后行断言等,增强了语言的灵活性。
  11. ES2019(ES10):新增了 Array.flat/flattenObject.fromEntriesString.trimStart/End、可选的 catch 绑定以及 Symbol.description 等特性,简化了代码编写。
  12. ES2020(ES11):引入了 BigInt 数据类型、空值合并运算符(??)、可选链操作符(?.)、Promise.allSettledglobalThis 以及模块动态导入等功能,提升了语言的表达能力。
  13. ES2021(ES12):包含逻辑赋值运算符(&&=、||=、??=)、数字分隔符(_)、Promise.any 和 WeakRefs 等特性,进一步完善了语言功能。
  14. ES2022(ES13):新增了类字段声明、静态类字段和私有方法、Top-level await 以及 Error Cause 等特性,使类的定义更加简洁和强大。
  15. ES2023(ES14):引入了 Array find from last、Hashbang 语法、WeakMap 和 WeakSet 的新方法以及 Symbol.dispose 和 Disposable Objects 等特性,增强了语言的实用性。
  16. ES2024(ES15):预计会增加 Decorators(装饰器)、Record & Tuple(不可变数据结构)等特性,目前还在不断发展和完善中。

从 ES6 开始,ECMAScript 采用了每年一次的发布周期,版本号以年份命名,这种方式使得新特性能够更快地进入标准,满足开发者的需求。

ES 版本 Node.js 最小支持版本 Chrome 最小支持版本 Firefox 最小支持版本
ES6 (ES2015) v4.0.0 (部分) 49 45
v6.0.0 (接近完整)
ES2016 (ES7) v7.0.0 51 52
ES2017 (ES8) v8.0.0 58 52
ES2018 (ES9) v10.0.0 63 57
ES2019 (ES10) v12.0.0 73 67
ES2020 (ES11) v14.0.0 80 74
ES2021 (ES12) v16.0.0 91 90
ES2022 (ES13) v18.0.0 96 97
ES2023 (ES14) v20.0.0 110 111
ES2024 (ES15) v21.0.0 (部分) 119 (部分) 120 (部分)

在生产环境中使用新特性时,建议搭配 Babel 等转译工具或 TypeScript 以确保兼容性。

参考资料与拓展阅读