我们知道数据类型一共分为Number、String、Boolean、Null、undefined、object、symbol、bigIn八种,今天主要来介绍一种非常重要的object(对象).
1.对象的基本概述
1.1对象的定义
对象为无序的数据和键值对的集合.
1.2对象的写法
1.let obj ={'name':'runrun','age':'26'}
2.let obj=new Object({'name':'runrun','age':'26'})
3.console.log({'name':'runrun','age':'26'})
1.3对象需要注意的几点
示例中的键为字符串,引号可以省略不过省略之后还是字符串.举例比如空字符串也可以是键(同时表情中文这些都可以做键值)
var obj = {
'':1
}
console.log(obj)//下面是打印的结果
image.png
1.4如何让变量的值成为键,加上[]
let a ='xxx'
var obj ={
'a':1111
}
var obj2 ={
[a]:1111
}
console.log(obj)//没变
console.log(obj2)//变量的值已经为键
image.png
2.删除对象的属性
2.1删除属性两种方法(delate和obj.name=undefined)
1.var obj ={name: 'frank','age':30}
obj.name=undefined//键还在,不过值为undefined
console.log(obj)
2.var obj1={name:'frank',age:26}
delete obj1.name
console.log(obj1)//直接删除也可以用delete obj1['name']
image.png
2.2如何判断该属性名是不是obj的
- 'xxx' in obj === false(不含属性名)
- 'xxx' in obj && obj.xxx === undefined(含有属性名,值为undefined)
3.查看对象的属性
3.1查看各总情况的属性
let obj2 = {name:'frank',age:34}
console.log(Object.keys(obj2))//查看所有的键
console.log(Object.values(obj2))//查看所有键的值
console.log(Object.entries(obj2))//Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组
console.dir(obj2)//可以打印自有属性和共有属性
image.png
3.2如何查看该属性是不是自己所有的属性
console.log(obj.hasOwnProperty('toString'))
image.png
3.3如何查看属性的值
let obj2 = {name:'frank',age:34}
obj2['name']
console.log(obj2['name'])
image.png
4.如何修改和增加属性
4.1修改和增加一般属性
let obj2 = {name:'frank',age:34}
console.log(obj2['name']='jack')//改了键值
console.log(obj2['age']=88)//改了年龄
console.log(Object.assign(obj2,{p1:1,p2:2})//修改多对键和值
image.png
4.2如何创建原型修改隐藏属性
var common={'国籍':'中国',hairColor:'black'}
var person={name:'frank'}
person._proto_=common
console.dir(person)//把common设置为了原型
var common={'国籍':'中国',hairColor:'black'}
var person =Object.create(common,{name:{value:'frank'}})
console.dir(person)
image.png
5.'name' in obj和obj.hasOwnProperty('name') 的区别
in判断的是对象的所有属性,包括对象自身及其原型的属性;
而hasOwnProperty则是判断对象自身是否具有某个属性。
Object.prototype.apple= 'red';
let obj = {
name: 'runrun',
age: '2'
}
console.log(obj.hasOwnProperty('apple')) // false
console.log(obj.hasOwnProperty('apple')) // true
console.log('apple' in obj) // true
本文为本人的原创文章,著作权归本人和饥人谷所有,转载务必注明来源.
网友评论