前言
在学习对象之前,我们需要具备一定的基础知识,需要已经学习变量的数据类型(Number,String等),运算符(+ - * / % **)与流程控制(选择,循环),这将保证我们学习对象时,接受程度大大提升。
目录
一、什么是对象?
我们先来回顾一下js的数据类型,原始值有以下7种,
数据类型:
原始值:
1.数值Number
2.大整数 BigInt
3.字符串
4.布尔值
5.空值 NULL
6.未定义 undefined
7.符号 Symbol
对象:其他所有数据类型都称为对象
为什么有了7种数据类型之后还需要引入对象这个概念
原始值只能表示一个单个的值,不能表示复杂数据比如我们在程序中表示一个人的数据,有性别,姓名等
let name ='qi_bai'
let gender = '男'
let age = 19;
我们设置三个变量,他们三个都是只能表示一个独立的数据,但是不能索引到对应的一个人,所以为了解决这个问题,我们引入对象概念,对象是JS中一种复合数据类型,它相当于一个复杂容器,在对象中能够存储不同的数据类型,比如让上述3个变量都存储至名为Person的对象中,让这个对象表示一个名字叫qi_bai,性别男,年龄19的人。这就解决了上述问题。
二、关于对象的基本操作
1.创建对象
我们创建对象有以下三种方式
使用new来创建对象
let obj = new Object();
使用Object()
let obj = Object();
使用对象字面量
let obj = {};
2.属性
1)添加属性
我们已经描述了,对象可以表示一个复杂的数据类型,我们可以通过以下
对象名.属性=属性值 属性就是我们原先独立的变量名,属性值就是我们原先的变量值
obj.name='qi_bai';
console.log(obj);
obj.name='qi_bai';
console.log(obj);
obj.age=19;
obj.gender='男';
console.log(obj)
通过上述操作,实现将name,age,gender三个变量指向一个具体的对象,这种形式就可以分别表示出张三,李四,王五,不同人的信息。
2)读取对象属性
我们通过 对象名.属性名 的形式获取对应的属性值(或者通过对象名['属性名']的形式)
obj.name='qi_bai';
console.log(obj);
obj.age=19;
obj.gender='男';
console.log(obj);
console.log(obj.name);
3) 修改属性值
假如我们的这个人改名字了,我们只需要与添加属性的方法一样即可完成修改属性值。
obj.name='qi_da_bai';
4)删除属性
我们通过delete 属性名 来删除属性
delete obj.name;
console.log(obj.name)
我们可以看到删除属性之后,如果再读取就读取不到这个属性了,说明我们已经删除成功
3.对象字面量
这里我们深入讲解一下创建对象的第三种形式
obj={
属性名:属性值,
['属性名']:属性值
}
我们可以直接通过在{ }添加属性名:属性值的形式(或者['属性名']:属性值 两种语法相同),完成属性的添加操作,不同属性之间用 , 相连接。
let obj = {
name:'qibai',
age:19,
gender:'男'
}
console.log(obj)
4.枚举属性
枚举属性指的是将对象中的所有属性全部获取,我们通过for-in语句实现这个操作,propname表示存储属性名的变量
for(let propname in obj){
语句....
}
我们以下列代码为例:
let obj = {
name:'qibai',
age:19,
gender:'男'
}
for(let propname in obj){
console.log(propname);
}
for in 语句很好的将obj的所有属性遍历了一遍。