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; // 尝试设置无效的年龄,将会在控制台输出错误信息
原文地址:https://blog.csdn.net/weixin_72939806/article/details/140496021
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!