1、对象的介绍
无需属性的集合,一般用于保存信息
商品信息:名称、价格、生产日期、评论···
个人信息:身份证、姓名、性别、年龄、电话号码···
对象的属性,没有先后顺序。也就是说对象属性编写的顺序不会影响对象的最终结果。
2.创建对象,访问对象属性,删除对象属性,遍历对象
0)写法
1.对象以花括号为边界;
2.{ }内可以保存零到多个键值对;
3.键值对由键名和键值组成,键名和键值之间通过冒号隔开,不同的键值对之间通过逗号隔开;
4.键名一般不需要使用引号,简直一般需要使用引号(数字时不需要);
键名使用引号的时候:键名中存在空格;
键值不使用引号的时候:键值为数字;
5.键值可以是任意的数据类型
var obj = {
name:{}
};
var obj = {
name:[]
};
//
var tom = "123";
var obj = {
id:1,
name:tom
};
console.log(obj); //{ id: 1, name: '123' }
var tom = "123";
var obj = {
id:1,
name:tom,
'say address':function() {
console.log("江苏省昆山市");
}
};
console.log(obj); //{ id: 1, name: '123', 'say address': [Function: say address] }
1)创建对象实例方法:
》对象字面量
var obj = {
键名:10,
键名:"你好",
键名:键值
};
》使用构造器
var person = new Object();
person.name = "briup";
person.age = 22;
》
var obj = new Object();
console.log(obj); //{}
obj.id = 1;
obj.name = 'tom';
obj.age = 13;
console.log(obj); //{ id: 1, name: 'tom', age: 13 }
2)访问对象属性
》对象.属性名字
》对象[] //[中括号中必须是一个计算结果为字符串的表达式]
>
var obj = {
id: 1,
name:'tom',
'say address':function(){
console.log('---')
}
}
console.log(obj['say address']);
console.log(obj[name]);//出错
console.log(obj['name']);//正确
console.log(obj[id]);//出错
console.log(obj['id']);//正确
3)删除对象属性
//delete只是断开了属性和宿主对象的联系,而不会操作属性中的属性,
并且delete只会删除自有属性,不能删除继承属性。
delete obj.name;
4)修改和删除属性
5)检测属性是否属于该对象的自有属性还是继承属性
>Object.hasOwnProperty("属性名");
>'属性名字' in 对象
》方法 in 对象
>Object.propertyLsEnumerable("属性名")
ps:
》继承属性
6)序列化对象
var obj = {
id:3,
name:'tom',
}
console.log(JSON.stringify(obj));//序列化
console.log(JSON.parse(JSON.stringify(obj)));//反序列化
//使用场景
》登陆接口所需要的参数格式为json字符串
》路由传参 : A页面传递对象时候想序列化。B页面使用时候先反序列化为对象,再访问对象的属性不使用序列化,对象会被解析[Object Object],B页面访问不到
》将对象存储到浏览器中,也需要先序列化,然后再存储
7)对象的遍历
for(var key in obj){//一次性获取对象中的所有属性
console.log(key);//输出obj里面所有的属性名字
console.log(obj[key]);//输出obj里面的所有属性以及其内容
}
9)