#1078 VSCode Launch Failed Due to AppArmor Restriction
VSCode 2025-09-22#1077 WSL 检测到 localhost 代理配置
Windows WSL 2025-09-04Cygwin 实在是有点太慢了,忍不了,研究好几次也没有解决慢的问题,切入 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关闭网络连接natNAT,默认值mirroredvirtioproxy使用 VirtioProxy 网络代理
发现只有 mirrored 配置才不打印警告信息,但是就是不能使用 VPN。
[wsl2]
networkingMode=mirrored
算了,还是忍忍吧。
#1076 进箱:电子邮件自动归类
Email 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 种。
-
夸克(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 介子。
-
轻子(6 种)
- 电子(e⁻):电荷 -1,参与化学反应与电流传导。
- μ 子:电荷 -1,质量约为电子的 207 倍,不稳定。
- τ 子:电荷 -1,最重的轻子(质量约 1.78 GeV),迅速衰变。
- 电子中微子(νₑ)、μ 子中微子(νμ)、τ 子中微子(ντ):电中性,质量近乎为零,几乎不与物质作用(“幽灵粒子”)。
二、玻色子(作用力粒子)
玻色子传递基本相互作用,自旋为整数,共 5 种(胶子虽为 8 种但归为 1 类):
-
规范玻色子(传递基本力)
- 光子(γ):传递电磁力,无质量,电荷为零,形成光与电磁波。
- 胶子(g):传递强力,无质量,通过“色荷”束缚夸克(共 8 种,但作为一类)。
- W⁺/W⁻ 玻色子:传递弱力,质量约 80.4 GeV,导致原子衰变。
- Z⁰ 玻色子:传递弱力,质量约 91.2 GeV,电中性。
-
希格斯玻色子(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、4/1、7/1、10/1)根据上个季度的消费金额,系统自动计算客户等级。
- 商务部门可以手动指定客户等级(申请流程),优先级高于系统自动计算结果。
- 系统自动创建客户群,按照标准拉指定人员进群提供支持。
如果客户等级下调,不符合建群标准,保留原权益一个月,然后通知客户,并在两周后将客户群冻结。 - 黄金、铂金、钻石客户问题专项跟进,每周总结,每月总结,季度总结,年度总结。
权益:
- 知识库
- 产品简报
- 线上培训
- 线下活动
- 优惠券
- 定制开发
Diamond
Platinum
Gold
Silver
Bronze
Iron
Basic
#1071 短信政策调整
SMS 2025-07-10#1070 ES2025 新特性
JavaScript 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 各主要版本及其核心变化:
- ES1(1997 年):这是 ECMAScript 的首个版本,它的制定参考了 JavaScript 1.1,是一个基础版本,为后续的发展奠定了基础。
- ES2(1998 年):此版本主要是为了使规范与 ISO/IEC 16262 国际标准保持一致,并没有对语言功能进行实质性的扩展。
- ES3(1999 年):这是一个具有重要意义的版本,引入了众多核心特性,包括正则表达式、try/catch 异常处理、do-while 循环以及更完善的字符串处理功能等,极大地丰富了 ECMAScript 的功能。
- ES4(未发布):该版本计划进行大幅更新,但由于各方在设计理念上存在较大分歧,最终未能正式发布。
- ES5(2009 年):引入了严格模式(strict mode),对 JSON 对象进行了标准化,还新增了数组方法(如 forEach、map、filter)和
Object.defineProperty等特性,提升了代码的规范性和可维护性。 - ES5.1(2011 年):这是一个修正版本,主要是对 ES5 的规范进行了澄清和完善,使其更加严谨。
- ES6(ES2015):带来了众多革命性的特性,如箭头函数、let/const 块级作用域、Promise 异步编程、class 类和继承、模块系统(import/export)以及解构赋值等,使 ECMAScript 的语法更加现代化。
- ES2016(ES7):新增了数组 includes 方法和指数运算符(**),进一步扩展了 ECMAScript 的功能。
- ES2017(ES8):引入了 async/await 异步编程模式、
Object.values/entries、字符串填充(padStart/padEnd)以及共享内存和原子操作等特性,提升了异步编程的便利性。 - ES2018(ES9):支持异步迭代器、Rest/Spread 属性、
Promise.finally以及正则表达式的一些增强功能,如后行断言等,增强了语言的灵活性。 - ES2019(ES10):新增了
Array.flat/flatten、Object.fromEntries、String.trimStart/End、可选的 catch 绑定以及 Symbol.description 等特性,简化了代码编写。 - ES2020(ES11):引入了 BigInt 数据类型、空值合并运算符(??)、可选链操作符(?.)、
Promise.allSettled、globalThis以及模块动态导入等功能,提升了语言的表达能力。 - ES2021(ES12):包含逻辑赋值运算符(&&=、||=、??=)、数字分隔符(_)、Promise.any 和 WeakRefs 等特性,进一步完善了语言功能。
- ES2022(ES13):新增了类字段声明、静态类字段和私有方法、Top-level await 以及 Error Cause 等特性,使类的定义更加简洁和强大。
- ES2023(ES14):引入了 Array find from last、Hashbang 语法、WeakMap 和 WeakSet 的新方法以及 Symbol.dispose 和 Disposable Objects 等特性,增强了语言的实用性。
- 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 以确保兼容性。