day12
检测对象中是否包含某属性
- 使用in
var obj = {
name:"",
}
console.log('name' in obj);
- 使用hasOwnProperty
判断是否为自身的属性而非继承的
var obj = {
name:"",
}
console.log(obj.hasOwnProperty("name"));
- propertyIsEnumerable
propertyIsEnumerable()是hasOwnProperty()的增强版,除了是自身属性外,还要求是可枚举属性,即我们创建的属性。
var obj = {
name:"",
}
console.log(obj.propertyIsEnumerable("tostring"))//false,不是可枚举的属性
对象序列化
对象序列化是指将对象的状态转换为字符串,也可以反序列化,将字符串还原为对象函数。
RegExp,Error对象,undefined值不能序列化和反序列化。
JSON.stringify(obj) 将对象序列化为JSON字符串,只能序列化对象可枚举的自有属性
JSON.parse(jsonStr) 反序列化