批改状态:合格
老师批语:
extends 用于类声明或者类表达式中,创建一个类,表示该类是另一个类的子类,例如: class A = {}; class B extends Asuper 关键字用于访问对象字面量或类的原型([[Prototype]])上的属性,或调用父类的构造函数。
静态成员:属性/方法 static 类(class)通过 static 关键字定义静态方法。不能在类的实例上调用静态方法,而应该通过类本身调用。这些通常是实用程序方法,例如创建或克隆对象的功能。静态属性可以通过对象的属性访问器定义
mdn 上的例子非常好,直接拿过来了…
class Tripple {static tripple(n = 1) {return n * 3;}}class BiggerTripple extends Tripple {static tripple(n) {return super.tripple(n) * super.tripple(n);}}console.log(Tripple.tripple());// 3console.log(Tripple.tripple(6));// 18let tp = new Tripple();console.log(BiggerTripple.tripple(3)); // 这里会输出81,因为super..tripple 调用的是Tripple中的tripple方法
类私有域 #private variable/#private function 类属性在默认情况下是公有的,但可以使用增加哈希前缀 # 的方法来定义私有类字段,这一隐秘封装的类特性由 JavaScript 自身强制执行。私有成员不是对象的property,所以不能用索引名访问
constructor 是一种用于创建和初始化class创建的对象的特殊方法,一个类中只能有一个
综合实例如下,
class Polygon {constructor(height, width) {this.name = 'Rectangle,definitely!';this.height = height;this.width = width;}//静态成员static #createdby = 'Dapang'// 私有属性#privateattr = 'Private attr(starts with#) told you,'sayName() {if(this.height <= 0 || this.width <= 0){console.log("Are you joking?")}else{if(this.height == this.width){this.name = "Square,brother~"}console.log(Polygon.#createdby + ':\n' + this.#privateattr + ' I am a ', this.name + '.');}}get area() {return this.height * this.width;}set area(value) {this._area = value;}}class Square extends Polygon {constructor(length) {super(length,length)}get AreaDoubled(){return super.area * 2;}}let p = new Polygon(100,100)p.sayName()// Dapang:// Private attr(starts with#) told you, I am a Square,brother~.console.log(p.area) // 10000, get area(){}let s = new Square(100)console.log(s.AreaDoubled) // 20000

字符串常用api
let s = ' abcekajslkdj123 kjasdklfjdf12 'const s1 = s.slice(0,4) //切割始末位置: abcconst s2 = s.trim() //去除字符串两端的空白字符:abcekajslkdj123 kjasdklfjconst s3 = s.replacAll(' ', '空格') //用空格替换‘ ’:空格abcekajslkdj123空格kjasdklfj空格const s4 = s.split(' ') //按照特定字符分割为数组(去除该字符):[ '', 'abcekajslkdj123', 'kjasdklfj', '' ]const s5 = s.match('j')// 如果不加全局修饰符/g,则找到第一就会输出,如下所示/*['j',index: 7,input: ' abcekajslkdj123 kjasdklfj ',groups: undefined]*/let sss = ' askdjflk123kljlkdf 234kjlsjfd324 2342 lkjlk34 'const s6 = sss.match(/\d+/g) // [ '123', '234', '324', '2342', '34' ]
数组常用api
// ...rest 压缩与展开arr = [1, 2, 3]let arr1 = [...arr] // [1,2,3]arr = [...arr, 4, 5, 6] // [1,2,3,4,5,6]
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号