对象
引用数据类型,用于保存复杂的数据,是多个属性和方法的集合
1. 对象如何创建
(1)对象字面量:var obj = {};
对象使用{}
作为对象的边界,对象是由多个属性组成,属性与属性之间通过,
隔开,属性名与属性值通过:
隔开;属性名一般不添加引号(当属性名中出现特殊字符的时候需要添加引号),属性值如果是字符串的一定添加引号。
(2)通过构造函数来创建对象:var obj = new Object();
2.向对象中添加属性
(1)对象.属性名 = 属性值; 例:obj.name = "terry"
(2)对象[“属性名”] = 属性值; 例:obj["name"] = "terry"
对象的属性名没有任何要求,不需要遵守标识符的规范,但是在开发中,尽量按照标识符的要求去写。
属性值也可以任意的数据类型。
3.读取对象中的属性
(1)对象.属性名例:console.log(obj.name)
(2)对象[“属性名”]例:console.log(obj["name"])
如果读取一个对象中没有的属性,它不会报错,而是返回一个undefined
4.修改对象中的属性
对象.属性名 = 新属性值; 例:obj.name = "larry"
5.删除对象中的属性
(1)delete 对象.属性名例:delete obj.name
(2)delete 对象[“属性名”]例:delete obj["name"]
6.使用in检查对象中是否含有指定属性
“属性名” in 对象 例:console.log(name in obj);"
- 如果在对象中含有该属性,则返回true
- 如果没有则返回false
7.对象序列化
将对象转换为字符串
(1)JSON.stringify() 序列化字符串方法
例:console.log(JSON.stringify(obj));"
(2)JSON.parse() 将字符串转化成对象
8.遍历对象中的属性
增强for循环:
for (var 变量 in 对象){语句}
for(var key in obj){
var val = obj[key];
}
for...in
语句对象中由几个属性,循环体就会执行几次
每次执行时,会将对象中的一个属性的名字赋值给变量,我们可以通过它来获取对象中的属性
9.Object
根构造函数,所有的对象都直接间接继承Object,所有的对象都可以调用Object原型中的方法
函数在内存中占有两块区域,一块为构造函数,一块为构造函数原型区域
原型中可以继承的方法:
(1)toString()
:将对象转换成字符串描述
(2)valueOf
():返回Boolean对象的原始值
(3)constructor
:构造函数
(4)hasOwnProperty(prop)
:判断某个属性是否是自有属性
(5)propertyIsEnumerable()
:属性是否可以被遍历