读 JavaScript语言精粹

检测对象中是否存在某个属性

obj.hasOwnProperty('name')

三元运算符

return this.obj.hasOwnProperty('name') ? '存在' : '不存在';

检索对象中的值时,如果key名不是保留字而且标识符合法,优先使用 . (obj.name),可读性更强。

当检索一个未必存在的值时(返回undefined),可以为其设置一个默认值

this.a_value = this.obj['age'] || '默认值';

尝试从一个undefined值中检索key,或抛出一个TypeError.

扫描二维码关注公众号,回复: 57599 查看本文章

为对象中一个不存在的key设置value,这个键值对会添加到对象中。

对象通过引用传递,永远不会被复制

let try_to_copy_obj = this.obj;
try_to_copy_obj.name = 'modified name';
console.log(this.obj);  //name: "modified name"

使用for in遍历对象中所有属性并且过滤可能出现的原型属性

let key_name;
for(key_name in this.obj){
    let value = this.obj[key_name];
    if(typeof value !== 'function'){
        console.log(value);
    }
}

注意:for in并非是按照key的排列顺序遍历的,可以创建一个正确顺序的key名数组来遍历对象

for (let i = 0; i < key_name_arr.length; i++) {
    if (this.obj.hasOwnProperty(key_name_arr[i])) {
        console.log(this.obj[key_name_arr[i]]);
    }
}

删除对象中的key

delete this.obj.name;

猜你喜欢

转载自www.cnblogs.com/jiaoxuanwen/p/8930860.html