ES2022(ES13)简介
文章目录
- 类
- 类的字段声明
- 私有属性和方法
- 私有属性
- 私有方法
- 类的静态公共方法和字段
- 静态块
- 正则表达式
- 对象
- 数组与字符串
专栏目录请点击
类
类的字段声明
- 可以在顶层进行类的字段的定义和初始化
- 在以前的规范中,类的字段的初始化一般是在构造函数中的
class MyClass {name;age = 1;
}var myclass = new MyClass()
console.log(myclass); // {name:undefined,age:1}
私有属性和方法
我们在方法或者属性前面加上#
,他就属于私有属性或者方法了
私有属性
// 类的私有方法和私有属性class Person{name="SunWuKong";#age = 18; // 当前变量智能在类的内部进行访问sayAge(){console.log(this.#age);}
}var person = new Person()
person.sayAge() // 18
console.log(person.#age);
当我们在编辑器中使用的时候,他就已经报错了
私有方法
当我们在编辑器中写私有属性或者私有方法的时候,如果这个私有属性或者私有方法没有倍使用,那么他并不是处于高亮状态
// 类的私有方法和私有属性
class Person {name = "SunWuKong";#age = 18; // 当前变量智能在类的内部进行访问sayAge() {this.#sayAge()}#sayAge(){console.log(this.#age);}
}var person = new Person()
person.sayAge() // 18
类的静态公共方法和字段
- 定义类的静态属性和方法,主要使用属性
static
关键字 - 不能在类的实例上使用静态方法,应该通过类本身进行调用,通常用于创建使用程序的函数,使用类名进行访问,也可以通过构造函数的形式来访问
this.constructor.STATIC_METHOD_NAME()
class Dog {static name = "旺财"static sayName(){console.log(`我是小狗${this.name}`);}
}console.log(Dog.sayName()); // 我是小狗旺财var dog = new Dog()
console.log(dog.sayName()); // 报错 dog.sayName is not a function
静态块
// 静态块
class Translator {static translations = {yes: 'ja',no: 'nein',maybe: 'vielleicht',};static englishWords = extractEnglish(this.translations);static germanWords = extractGerman(this.translations);
}function extractEnglish(translations) {return Object.keys(translations);
}function extractGerman(translations) {return Object.values(translations);
}console.log(Translator.englishWords); // ['yes', 'no', 'maybe']
console.log(Translator.germanWords); // ['ja', 'nein', 'vielleicht']
- 当我们读取Translator的静态属性的时候,他顺便调用了一个外部的函数,着似乎跟不爽(读取类的属性还要调用外部的函数)
- 当我们有了类的静态块的时候可以这样处理
class Translator {static translations = {yes: 'ja',no: 'nein',maybe: 'vielleicht',};// 定义属性static englishWords = []static germanWords = []// 静态块(初始化的时候,能读到内部的属性值,做一些逻辑操作)static {for (const [englist, german] of Object.entries(this.translations)) {this.englishWords.push(englist)this.germanWords.push(german)}}
}console.log(Translator.englishWords); // ['yes', 'no', 'maybe']
console.log(Translator.germanWords); // ['ja', 'nein', 'vielleicht']
正则表达式
const reg = /test(\d)/g;
const reg2022 = /test(\d)/dg;
const str = 'test1test2';
const arr = [...str.matchAll(reg)];
const arr2022 = [...str.matchAll(reg2022)];
console.log(arr[0]);
console.log(arr2022[0]);
第一个打印
第二个打印
- 这里正则表达式增加了索引匹配,添加了一个特殊的标志d
- 他会返回一个二维数组作为名索引的键,包含每个匹配项的开始和结束索引
- 如果正则表达式中捕获了任何命名组,他将在indeces.groups对象中返回他们的开始索引与结束索引
对象
- 新增了hasOwn方法 点击
数组与字符串
- 新增at方法 点击 点击
ES2022(ES13)简介相关推荐
- android studio安装插件查看db数据库
一个插件即可解决android studio查看db文件的问题 插件名就是database 首先去setting找到plugings搜索database 点击蓝色的文字 选择我标记的这个 记住别下载错 ...
- 新的 ES2022 规范终于发布了,我总结了8个实用的新功能
JavaScript 不是一种开源语言,它是一种需要遵循 ECMAScript 标准规范编写的语言,TC39 委员会负责讨论和批准新功能的发布, 那TC39他们是谁? "ECMA Inter ...
- ES6—ES13总结
ECMAScript 是 JavaScript 的标准与规范,JavaScript 是 ECMAScript 标准的实现和扩展.今天就来看看 ECMAScript 各版本有哪些实用开发技巧吧! 一.E ...
- ES7、ES8、ES9、ES10、ES11、ES12、ES13、ES14(ES进阶之路二)
简介 JavaScript是世界上发展最快的编程语言之一,不仅可以用于编写运行在浏览器的客户端程序,随着Node.js的发展,JavaScript也被广泛应用于编写服务端程序.而随着JavaScrip ...
- ES6(2015) ~ ES13(2020) 特性梳理(浏览器未支持ES12、E13)
ECMAScript 的发展及其版本简称对照图示: 前置概念 ECMAScript:ESMA是欧洲计算机制造协会,国际组织,主要负责维护各种计算机的相关标标准,包括推动JavaScript的标准化. ...
- etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理
1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...
- Docker学习(一)-----Docker简介与安装
一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...
- 【Spring】框架简介
[Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...
- TensorRT简介
TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...
最新文章
- 一篇论文摘要计算机英语,推荐:计算机毕业论文英文摘要的写作方法
- 7-7 12-24小时制 (C语言)
- 《DSP using MATLAB》Problem 6.24
- 10.14 ssh:安全地远程登录主机
- 其实昨天去加班也没有干什么事情,就只有3个人
- ImportError: No module named 'chardet'
- C语言试题七十六之请编写函实现百钱买百鸡
- PDE6 Transport with decay
- docker-compose学习
- PAIP.DW 各个版本的差别大比较。
- opencv 视频处理相关
- 自然语言处理Java开源包FNLP(FudanNLP)的使用
- 【JS逆向系列】某服务器平台sm系列算法分析
- Matlab中如何清除persistent 变量
- ubuntu 18.04快捷显示桌面
- Java学习——Day13:IO流
- 期货反向跟单犯法吗?
- Pytorch自动求梯度
- Mi_Smart_Band_6(小米手环6)心跳数值PC显示
- PLSQL 64位的安装