引用数据类型是一种数据结构用于将数据和功能组织在一起。有时候也被称为对象定义。
***:对象是某个引用类型的实例
1.Object类型
1.1 创建实例
1.使用new操作符
var person=new Object();
person.name="cc";
2.使用对象字面量
使用字面创建对象实际上不会调用Object构造函数
var person={
name:'cc',
age:12
}
在对象字面量中属性也可以使用字符串:
var person={
"name":'cc',
"age":12
}
var person={}; //与new Object()相同
****:在通过对象字面量定义对象时,实际不会调用Object构造函数
1.2 访问对象属性
提示:下面的所有操作都是用上面字面量中所定义的对象
1.使用点
console.log(person.name); //"cc"
2.使用方括号
console.log(person["name"]) //cc
===>
var propertyName="name";
console.log(person[propertyName]);
1.3 检测属性
in 检测某属性是否是某对象的自有属性或者是继承属性
hasOwnProperty() 检测给定的属性是否是对象的自有属性,对于继承的属性返回false
propertyIsEnumerable() 检测给定的属性是否是该对象的自有属性,并且该属性是可以枚举的。
var person=new Object();
"toString" in person //true
person.hasOwnProperty("toString"); //false
1.4 Object属性和方法
Object类型所具有的任何属性和方法也同样存在于更具体的对象中
constructor //保存用户创建当前对象的函数
hasOwnProperty(propertyName) //用于检查给定属性在当前对象实例中是否存在。其中作为参数的属性名(propertyName)必须以字符串形式指定
toString() //返回对象的字符串表示
valueOf() //返回对象的字符串,数值,布尔值的表示,通常与toString()返回值相同
propertyIsEnumerable(propertyName) //用于检查给定的属性是否能够使用for-in语句来枚举
isPrototypeOf(object) //用于检查传入的对象是否是传入对象的原型
toLocaleString() //返回对象的字符串表示,该字符串与执行环境的地区对应
1.5 对象序列化
对象序列化是指对象的状态转换为字符串.也可以反序列化,将字符串还原成对象函数。
JSON.stringify(obj) //将对象序列化为Json字符串,只能序列化对象可枚举的自有属性
var str='{"name":"cc","age":12}'
JSON.parse(str) //将JSON格式的字符串str 反序列化转换成对象