访问对象的属性两种方式:person.name或person["name"]
什么时候报属性访问值错误呢?
查询一个不存在的属性不会报错,在对象自带属性、继承属性中均未找到查的属性,返回undefined。
但是当对象不存在时,要查不存在的对象的属性就会报错,null和undefined是没有属性的,要查他们的属性就会报错。
var object={name:xiao,age:12} object.eat;// undefined arr.name //报类型错误
对象的属性是只读的,不能给只读属性重新赋值 所以给对象设置属性会失败;对象中的属性为继承属性且为只读的时候所以给对象设置属性会失败;对象中不存在自有属性的时候所以给对象设置属性会失败。
删除属性:delete删除对象的属性
delete object.name;
检测属性:in运算符 判断对象是否含有某个属性,in的左侧是属性名,右侧是对象
name in object // true
hasOwnPreperty()是检测的对象属性是否是自有属性
var arr={name:2} arr.hasOwnPreperty("age")//false 对象没有age这个属性 arr.hasOwnPreperty("name")
propertyIsEnumerable()只有属性是可以枚举的才返回true
枚举属性:遍历属性(for/in)在循环中遍历对象中的所有属性
var object={name:x,age:2} for(p in object); console.log(p)//输出的是 name、age
属性的特性:值(value)、可写性(writable)、可枚举性(enumberable)、可配置性(configurable)
存取器四个属性:get、set、numberable、configurable