JS对象的基本用法
前言
本文章仅仅自身学习需要,把目前所学已知的用文章记录下来,做一次归纳整理,达到理解和加强记忆的目的,如有不对,请联系: 460046653@qq.com
1. 如果声明一个对象(Object)数据类型?
什么是对象呢?对象是属性(由属性名和属性值组成一个属性,:隔开)的集合,用大括号括起来.称之为对象(没有属性名和属性值是空对象(null))
//以下是规范写法
let obj = new Object({'属性名':'属性值','属性名':'属性值'}) //逗号隔开
//以下是简写写法
let obj2 = {'属性名':'属性值','属性名':'属性值'}
属性名:遵守标识符的规则,可不加引号。其他例外
//如果属性名是数值也不可加引号,但自动转换为字符串
let obj = {
1: 'a',
3.2: 'b',
1e2: true,
1e-2: true,
.234: true,
0xFF: true
}
//它们最终都会变成字符串!!
// obj {
// 1: "a",
// 3.2: "b",
// 100: true,
// 0.01: true,
// 0.234: true,
// 255: true
// }
//不符合标识符 报错
let obj = {
1+2:3,
1a:'1a'
}
//如果不符合标识符,请加上引号
let obj = {
'1+2':3,
'1a':'1a'
}
变量可不可以当成属性名呢? 答:可以的我们来看代码
let p1 = 'name'
let obj = {
[p1]:'xiaoxiao',
}
可以看到 p1 是一个 string 类型的变量,值为’name’.我们定义对象时,属性名是被中括号包裹起来了,这是当属性名为变量时的一个写法.属性名是变量的值(name)
属性值:值遵守该类型规则即可
2. 如何删除对象的属性?
//我们先声明一个对象
let obj = {
'name':'xiaoxiao',
'age':18
}
delete obj.name //name属性就会消失
3. 怎么查看对象的属性?
分两种情况来看,一个是自身属性,一个是该对象的共有属性
let obj = {
name: "xiaoxiao",
age: 18
};
//查看自身属性
Object.keys(obj);
//查看自身属性和共有属性
console.dir(obj);
4. 如何修改或增加对象的属性
//定义之后增加对象的属性
let obj = {
name: "xiaoxiao"
};
obj.age = 18;
//定义之后修改对象属性的属性值
obj.name = "xiao";
obj.age = "20";
//或者批量一起修改 可以用Object提供的assign属性
Object.assign(obj, { name: "xiaoxiao", age: 20 });
5. ‘name’ in obj 和 obj.hasOwnProperty(‘name’) 的区别
你会问这是什么意思?区别在于自身属性和共有属性,我们在查看和删除的时候
let obj = {
name:'xiaoxiao',
age:18
}
//我们知道obj有个自身属性,它还有一个隐藏的共有属性
'name' in obj //问name是属于obj的自身属性或共有属性吗?答案是true
obj.hasOwnProperty('name') //问name自身属性吗? 答案是true
明白它们之间的区别了吗?