文章目录

    • 类的字段声明
    • 私有属性和方法
      • 私有属性
      • 私有方法
    • 类的静态公共方法和字段
    • 静态块
  • 正则表达式
  • 对象
  • 数组与字符串

专栏目录请点击

类的字段声明

  • 可以在顶层进行类的字段的定义和初始化
  • 在以前的规范中,类的字段的初始化一般是在构造函数中的
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)简介相关推荐

  1. android studio安装插件查看db数据库

    一个插件即可解决android studio查看db文件的问题 插件名就是database 首先去setting找到plugings搜索database 点击蓝色的文字 选择我标记的这个 记住别下载错 ...

  2. 新的 ES2022 规范终于发布了,我总结了8个实用的新功能

    JavaScript 不是一种开源语言,它是一种需要遵循 ECMAScript 标准规范编写的语言,TC39 委员会负责讨论和批准新功能的发布, 那TC39他们是谁? "ECMA Inter ...

  3. ES6—ES13总结

    ECMAScript 是 JavaScript 的标准与规范,JavaScript 是 ECMAScript 标准的实现和扩展.今天就来看看 ECMAScript 各版本有哪些实用开发技巧吧! 一.E ...

  4. ES7、ES8、ES9、ES10、ES11、ES12、ES13、ES14(ES进阶之路二)

    简介 JavaScript是世界上发展最快的编程语言之一,不仅可以用于编写运行在浏览器的客户端程序,随着Node.js的发展,JavaScript也被广泛应用于编写服务端程序.而随着JavaScrip ...

  5. ES6(2015) ~ ES13(2020) 特性梳理(浏览器未支持ES12、E13)

    ECMAScript 的发展及其版本简称对照图示: 前置概念 ECMAScript:ESMA是欧洲计算机制造协会,国际组织,主要负责维护各种计算机的相关标标准,包括推动JavaScript的标准化.  ...

  6. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  7. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  8. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  9. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

最新文章

  1. 一篇论文摘要计算机英语,推荐:计算机毕业论文英文摘要的写作方法
  2. 7-7 12-24小时制 (C语言)
  3. 《DSP using MATLAB》Problem 6.24
  4. 10.14 ssh:安全地远程登录主机
  5. 其实昨天去加班也没有干什么事情,就只有3个人
  6. ImportError: No module named 'chardet'
  7. C语言试题七十六之请编写函实现百钱买百鸡
  8. PDE6 Transport with decay
  9. docker-compose学习
  10. PAIP.DW 各个版本的差别大比较。
  11. opencv 视频处理相关
  12. 自然语言处理Java开源包FNLP(FudanNLP)的使用
  13. 【JS逆向系列】某服务器平台sm系列算法分析
  14. Matlab中如何清除persistent 变量
  15. ubuntu 18.04快捷显示桌面
  16. Java学习——Day13:IO流
  17. 期货反向跟单犯法吗?
  18. Pytorch自动求梯度
  19. Mi_Smart_Band_6(小米手环6)心跳数值PC显示
  20. PLSQL 64位的安装

热门文章

  1. 全国大学生数学建模竞赛国家一等奖论文数学模型超全资料分享小白必备资料
  2. 电脑接两个屏幕,其中一个偶尔闪灭
  3. 计算机流量的单位是什么,单位g和ml哪个大?
  4. 深入BBN,如何解决长尾数据分布的同时兼顾表示学习
  5. 实现java语言的在线编译(OnlineJudge)----前言
  6. IDEA中建包的时候如何才能把包分开
  7. POJO、DO、DTO、AO、BO、VO、JB、DAO、EJB
  8. BZOJ1064:假面舞会(DFS 思维)
  9. esp8266 AMR转PCM
  10. Latex 常用括号类表达式