声明对象的两种语法
- JS中对象是复杂数据类型,是一组键值对,是无序数据的集合。
- 键名是字符串,不是标识符,可以包含任意字符。
- 引号可以省略,但键名还是字符串,省略之后就只能写标识符。
创建对象的两种方式:
/规范写法
let obj = new Object({'属性名':'属性值','属性名':'属性值'}) //逗号隔开
//简写写法
let obj2 = {'属性名':'属性值','属性名':'属性值'}
如何删除对象的属性
删除对象的两种方式
delete obj.xxx
delete obj['xxx']
直接删除对象的一个属性
let obj = {name:'eric',age: 18 };
delete obj.name
//这样是直接删除掉了obj的name属性
我们可以通过name in obj 来查看是否属实
'name' in obj
// 会返回false
如何查看对象属性
Object.keys(obj);
可以查看对象obj的所有属性名
let obj = {name:'eric',age:'18'};
Object.keys(obj);
// 输出结果
{name,age}
Object.values(obj)
可以查看对象的所有属性值
let obj = {'name':'eric', 'age': 18};
Object.values(obj);
// 输出结果
{eric ,18}
console.dir(obj)
可以打印出对象所有属性,包含所有的隐藏属性
let obj = {'name':'eric','age': 18};
console.dir(obj);
如何修改或增加对象的属性
修改或增加属性
直接赋值
- let obj ={name:'eric'}
- obj.name='eric'
- obj['name']='eric'
- obj['na'+'me']='eric'
- let key= 'name'; obj[key] ='eric'
批量赋值
Object.assign(obj,{age:18,gender:'man'})
修改或增加共有属性
一般不要修改原型,会出现很多问题
方法:
obj.__proto__.toString='xxx' // 不推荐此方法
Object.prototype.toString='xxx'
'name' in obj和obj.hasOwnProperty('name') 的区别
区别在于自身属性和共有属性,我们在查看和删除的时候
let obj = {name:'eric',age:18}
//我们知道obj有个自身属性,它还有一个隐藏的共有属性
'name' in obj
//name是属于obj的自身属性或共有属性
//true
obj.hasOwnProperty('name')
//name自身属性
//true
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!