码匠编程:7 个令人兴奋的 JavaScript 新特性

2023-10-26

前言

一个ECMAScript标准的制作过程,包含了Stage 0到Stage 4五个阶段,每个阶段提交至下一阶段都需要TC39审批通过。本文介绍这些新特性处于Stage 3或者Stage 4阶段,这意味着应该很快在浏览器和其他引擎中支持这些特性。

一、类的私有变量
最新提案之一是在类中添加私有变量的方法。我们将使用 # 符号表示类的私有变量。这样就不需要使用闭包来隐藏不想暴露给外界的私有变量

class Counter { #x = 0; #increment() { this.#x++; } onClick() { this.#increment(); } } const c = new Counter(); c.onClick(); // 正常 c.#increment(); // 报错

通过 # 修饰的成员变量或成员函数就成为了私有变量,如果试图在 Class 外部访问,则会抛出异常。现在,此特性可在最新版本的 Chrome 和 Node.js中使用。

二、可选链操作符
你可能碰到过这样的情形:当需要访问嵌套在对象内部好几层的属性时,会得到臭名昭著的错误Cannot read property ‘stop’ of undefined,然后你就要修改你的代码来处理来处理属性链中每一个可能的undefined对象,比如:

let nestedProp = obj?.first?.second;
如果obj或obj.first是null/undefined,表达式将会短路计算直接返回undefined

我自己是一名从事了多年开发的web前端老程序员,前段时间我花了一个月整理了一份最适合学习的web前端学习干货,各种框架都有整理,送给每一位前端小伙伴,想要获取的可以添加下面的QQ群

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

码匠编程:7 个令人兴奋的 JavaScript 新特性 的相关文章

  • Android手机可信引导解决方案

    1 概述 Android手机的可信引导过程 主要分为三部分 lk的可信 boot的可信 和system的可信 系统上电到lk的启动过程验证 因为和硬件联系紧密 基本都由各自硬件厂商完成 lk就是bootloader 它由Pre loader
  • 软件设计师——项目管理

    文章目录 Gantt图与Pert图 风险管理 配置管理 沟通管理 题目举例 Gantt图与Pert图 甘特图能够清晰描述每个任务的开始 结束时间及各任务之间的并行性 也可以动态地反映项目的开发进展情况 但难以反映多个任务之间存在的逻辑关系
  • LeetCode 728. 自除数

    题目链接 728 自除数 数据范围小 暴力枚举就可以 class Solution public bool check int x int n x while n int t n 10 if t 0 x t 0 return false n
  • 高可用containerd搭建K8s集群【v1.25】

    toc 一 安装要求 在开始之前 部署Kubernetes集群机器需要满足以下几个条件 一台或多台机器 操作系统 CentOS7 x 86 x64 硬件配置 2GB或更多RAM 2个CPU或更多CPU 硬盘30GB或更多 集群中所有机器之间
  • (转)JAVA常见异常

    0 需要标识符 a 不在函数内 1 非法表达式开始 b 可能 丢失括号 2 no data found a 可能 setInt 1 100 中 没有100这个值 3 找不到符号 a 可能 没导入包 4 指定了无效URL a 可能 数据库名或
  • 区块链中的密码学

    在比特币区块链的整个体系中 大量使用了公开的加密算法 比如Merkle Tree哈希树算法 椭圆曲线算法 SHA 256哈希算法 对称加密算法以及一些编码算法 如Base58编码 VarInt编码 DER编码等 下面我们来了解其中的几个核心
  • 致信登录显示服务器连接不成功,致信服务器怎么设置

    致信服务器怎么设置 内容精选 换一换 华为云主机迁移服务帮助中心 为用户提供产品简介 快速入门 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用主机迁移服务 将文件上传至Linux服务器一般会采用WinSCP
  • 改进后基于数组的Java银行案例

    无目录 用户class public class User private String cardNo private String identity private String userName private String passw
  • PyQt(Python+Qt)学习随笔:QTableWidgetItem项数据的data和setData访问方法

    老猿Python博文目录 专栏 使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget部件中的QTableWidgetItem项数据可以通过项的data int role 方法获取项中指定列指定角色的数
  • 静态时序分析——On-chip Variation

    OCV on chip variation 是指在同一个芯片上 由于制造工艺和环境等原因导致芯片上各部分特征不能完全一样 从而造成偏差 对时序分析造成影响 这些偏差对互联线和cell的延时都是有影响的 由于OCV对延时有影响 那么我们在进行
  • JS 监听元素dom变化

    我们在开发中 会遇到一些需求 需要监听元素变化 比如元素属性变化 元素大小变化 今天 我们就来聊聊俩种常用实现监听的方案 其他的自行研究 一 ResizeObserver ResizeObserver 是来监听元素的大小位置发生变化 也可以
  • algol语言_在21世纪探索Algol 68

    algol语言 安德鲁 麦克格特里克 Andrew McGettrick 在其出色的教科书 阿尔高68 第一和第二门课程 的序言中写道 本书源于1973 4年在斯特拉斯克莱德大学首次面向一年级本科生的演讲 其中许多人以前没有编程知识 许多学
  • matplotlib可视化篇annotate(),text()--注释文本

    1 matplotlib pyplot annotate 功能 在图中带有指向型文本注释信息 突显细节 官方项目地址 高级玩法 下面列出常用参数信息 text str 注释信息内容 xy float float 箭头点所在的坐标位置 xyt
  • CentOS7中FTP服务器的配置

    1 yum install vsftpd 安装ftp服务器 2 安装完成后使用service vsftpd start 重启ftp服务器 3 重启之后如果登录不成功 则需要 1 文件 etc vsftpd conf需要去掉 pam serv
  • 三极管的应用之开关电路设计

    引言 开关电路在单片机电路设计中经常用到 一般有两个作用 一是电平的转换 二是增加单片机IO口的驱动能力 虽然这个电路很简单 也很常用 但是我发现还是有些人电路结构错误或者参数不会设置 电路结构 如图1所示 三极管开关电路基本结构由基极电阻
  • 二维坐标系转换为三维坐标系_双目立体视觉中的坐标系与转换关系

    前言 通过模拟人眼立体视觉 两个摄像机拍摄同一场景可构成双目成像模型 或者在单相机航空摄影以及时序序列摄影中 同一个相机在两个不同的位置对同一场景拍摄两张不同的影像 也可构成双目成像模型 双目立体视觉的目标是利用三角测量原理从双目成像模型中
  • ubuntu 安装vagrant过程

    Ubuntu安装vagrant时需要首先安装virtualBox Step1 在https www virtualbox org wiki Linux Downloads 下载ubuntu对应版本的deb包 Step2 在ubuntu终端中

随机推荐

  • MacOS开发环境搭建

    一 软硬件准备 MacOS电脑 Xcode软件 在AppStore中搜索Xcode并安装 安装过程比较长 需要耐心等待 二 新建工程 打开Xcode 创建工程 选择macOS里面的App选项 点击Next 出现弹框后 输入Product N
  • 初识HarmonyOS学习笔记

    一 什么是HarmonyOS HarmonyOS是一款面向万物互联时代的 全新的分布式操作系统 华为开发的一款面向未来的全场景分布式智慧操作系统 将逐步覆盖1 8 N全场景总端设备 在传统的单设备系统能力的基础上 HarmonyOS提出了基
  • Python图像处理【3】Python图像处理库应用

    Python图像处理库应用 0 前言 1 将 RGB 图像转换为灰度图像算法 1 1 算法原理 3 2 算法实现 2 使用 PIL 库计算图像差异 2 1 算法原理 2 2 算法实现 3 使用 Scikit image 转换图像色彩空间 3
  • Java中用flush()方法的作用

    flush 方法将输入流和输出流中的缓冲进行刷新 使缓冲区中的元素即时做输入和输出 而不必等缓冲区满
  • 如何在 jupyter notebook 环境中安装 Python 包?

    在jupyter notebook中安装Python包 可以通过以下两种方式进行 使用 pip 命令 在jupyter notebook的代码框中输入以下命令 即可使用pip工具安装Python包 pip install 包名 其中 包名
  • homebrew 安装后添加brew到系统环境

    每次安装完homebrew后重新登录系统就不能使用brew了 解决 bash echo eval home linuxbrew linuxbrew bin brew shellenv gt gt HOME bash profile zsh
  • 叶子结点和分支节点_完全二叉树总结点数与叶结点数关系分析

    摘要 该文从两个角度分析了完全二叉树的总结点数与叶结点数之间的关系 其一 通过归纳找到总结点数的奇偶性与度为1的结点个数之间的关系 进而导出总结点数与叶结点数的关系 其二 由最后一个结点的父结点为倒数第一个分支结点的事实 找到总结点数与叶结
  • QT 常用setAttribute 、setWindowFlags

    文章目录 一 主界面 1 窗体属性 2 窗体标志 二 注意 1 最大化按钮失效置灰的问题 一 主界面 1 窗体属性 设置为模态框 如果再设置无边框窗口 那么模态会失效 不会阻塞其他窗口 须重新设置 setAttribute Qt WA Sh
  • C++ 内存地址以及成员变量的访问

    文档 C 内存地址以及成员变量的访问 note 链接 http note youdao com noteshare id 95ca5300ea7857c988f4ea746954678f sub CD49B4832609463780DECD
  • Flutter事件基础-手势部件

    目录 1 Draggable 2 LongPressDraggable 3 DragTarget 4 GestureDetector 5 Dismissible 6 IgnorePointer 7 AbsorbPointer 1 Dragg
  • 什么是计算机频繁读写硬盘,电脑经常卡爆?一文秒懂硬盘占用100%的原因

    原标题 电脑经常卡爆 一文秒懂硬盘占用100 的原因 很多人问存储极客 微信公众号 SSDGeek 为什么有时候硬盘读写速度明明不高 占用率却达到100 电脑用起来卡卡的 如上图中这样 0 1MB s的读写速度远低于机械硬盘100MB s以
  • chatGPT之100个例子-从体验到精通

    简介 本博文演示了100个chatGPT在各行各业的使用例子 全部看完有助于培养chatGPT解决问题的思维 在人工智能时代 智能软件并不会淘汰人类 淘汰人类的是会使用人工智能的人 我们直接使用openAI官方chatGPT 生动演示了ch
  • web服务器的基础协议是什么,web基础概念

    1 转发和重定向的区别 实际发生位置不同 地址栏不同 转发是发生在服务器的 转发是由服务器进行跳转的 细心的朋友会发现 在转发的时候 浏览器的地址栏是没有发生变化的 在我访问Servlet111的时候 即使跳转到了Servlet222的页面
  • mysql 多字段排序

    order by 字段1 字段2 指字段1 字段2都是升序 且 先升序字段1 再升序字段2 order by字段1 字段2 desc 指字段1升序 字段2降序 order by 字段1 desc 字段2 desc 指字段1降序 字段2降序
  • 嵌入式Linux开发板_WIFI无线网卡驱动移植

    linux开发时候 无线是一个重要的部分 下面分享一下WiFi相关开发使用 本文所用开发板 tiny4412 当然也可以在jz2440上实现 嵌入式中设备想要联网 无非就 有线和无线 两种方式 有线就插上网线 没什么好说的 无线的话一种是将
  • 第2讲 KMD ISP子系统缩略词及目录结构

    QCOM Camera子系统缩略词介绍 CPAS Camera Peripherals and Support CDM Camera Data Mover TFE Thin Front End IFE Image Front End OPE
  • python词云mask需要的图_Python词云wordcloud——根据词语生成图像

    wordcloud作者github应用实例 https github com amueller word cloud blob master examples masked py 官网 https amueller github io wo
  • 【论文笔记】Leveraging Line-point Consistence to Preserve Structures for Wide Parallax Image Stitching

    论文链接 https openaccess thecvf com content CVPR2021 papers Jia Leveraging Line Point Consistence To Preserve Structures fo
  • 初步认识Spring和Mybatis

    Spring 概述 Spring是一个开源框架 是一个IOC DI 和AOP容器框架 可以让简单的JavaBean实现EJB才有的功能 EJB EJB是Enterprise Java Beans技术的简称 又被称为企业Java Beans
  • 码匠编程:7 个令人兴奋的 JavaScript 新特性

    前言 一个ECMAScript标准的制作过程 包含了Stage 0到Stage 4五个阶段 每个阶段提交至下一阶段都需要TC39审批通过 本文介绍这些新特性处于Stage 3或者Stage 4阶段 这意味着应该很快在浏览器和其他引擎中支持这