ES6基本语法(四)——对象和类

对象

对象定义与初始化

let student = {
    name: "xiaoming",
    age: 18 // 注意年龄应该使用数值类型,所以去掉引号
};

向对象添加新的属性

student.id = "123456";
// 如果添加的属性已经有原值,那么就取代原来的值
student.age = 19;

删除属性

使用 delete 关键字删除属性是正确的:

delete student.id; // 删除 id 属性

检查对象是否包含指定属性

使用 in 关键字检查对象是否包含指定属性也是正确的:

let ifExist = "age" in student; // 检查 student 对象是否包含 age 属性

获取对象的属性数目

获取对象的属性数目可以通过 Object.keys() 方法:

let size = Object.keys(student).length; // 返回属性数目的计数

使用 for-in 循环遍历对象

for (let key in student) {
    console.log(key, student[key]); // 注意这里应该是 student[key] 而不是 person[key]
}

使用 forEach 方法遍历对象的属性和值

JavaScript 提供了 Object.keys() 方法来遍历对象的属性,并且可以用 forEach 方法来遍历这些属性:

Object.keys(student).forEach(key => {
    console.log(key, student[key]);
});
Object.entries(student).forEach(([key, value]) => {
    console.log("forEach", key, value);
});

Object.entries() 方法会返回一个包含对象所有可枚举属性的数组的数组,每个内部数组包含两个元素,分别代表对象的键和值。而 Object.keys() 方法只会返回一个包含对象所有可枚举属性的数组,它不会提供属性值。

类class、模板字符串

一个类的创建

class Student {
	name;
	age;
	//如果在类中没有显示声明属性,但在构造方法中引用了未声明的属性,那会自动将其视为实例属性
	
	//构造函数
	constructor(name, age) {
		this.name = name;
		this.age = age;
	}
	
	//返回个人信息的方法
	info() {
		return `姓名:${this.name} 年龄:${this.age}`;
	}
}

创建类的实例并使用方法的例子:

let studentInstance = new Student('小红', 20);
console.log(studentInstance.info()); // 输出: 姓名:小红 年龄:20

此外,模板字符串(使用反引号 `` 包围的字符串)可以嵌入表达式,通过 ${expression} 的形式。这是一种编写包含变量或表达式的字符串的好方法。

私有属性、存取器

私有属性是指尽在类的内部可以访问和操作的属性,外部是无法直接访问和修改的。

class Student {
	name;
	#age;   //#用来声明私有属性
	
	constructor(name, age) {
		this.name = name;
		this.age = age;
	}
	
	//下面是两个存取器
	get age() {
		return this.#age;
	}
	
	set age(value) {
		this.#age = value;
	}
	
	info() {
		return `姓名:${this.name},年龄:${this.age}`}
}

使用存取器的例子:

let studentInstance = new Student('小红', 20);
console.log(studentInstance.info()); // 输出: 姓名:小红,年龄:20

studentInstance.age = 21; // 正确设置年龄
console.log(studentInstance.info()); // 输出: 姓名:小红,年龄:21

studentInstance.age = -1; // 尝试设置无效的年龄,将会在控制台输出错误信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值