JS 对象基本用法

90 阅读2分钟

对象的定义:

JS中,对象是一组无序的相关属性和方法的集合,对象是由属性和方法构成的。

声明对象的两种语法

创建对象有两种方法:

  1. 对象字面量
let 对象名 = {
	key1: value1,
	key2: value2,
}; 
  1. new Object创建对象
let obj = new Object();

如何删除对象的属性

  • 使用delete关键字来删除对象的属性
    let obj = {
        'name': 'zhangsan',
        'age': 18
    }
    delete obj.name;  //或者delete obj['name'];

注意一点,如果obj.name = undefined,使用obj.name === undefined 并不能判断'name'是否是obj的属性,因为如果本来就没有'name'属性的话,查看obj['name'],返回的也是undefined

  • 使用in操作符验证obj是否含有某个属性名
   let obj = {
        'name': 'zhangsan',
        'age': 18
    }
   delete obj.name;
   console.log('name' in obj); //false 

如何查看对象的属性

  • 获取对象的单个属性的值
    let obj = {
        'name': 'zhangsan',
        'age': 18
    }
    console.log(obj['name']); //或者obj.name   这里的name是一个字符串而非变量,这很重要
    
    //比如遍历对象
    for(key in obj) {
        console.log(obj[key]); // 这里的key就是一个变量
    }
  • 查看对象所有属性Object.keys(obj),返回一个由obj的所有key组成的数组
  • 查看对象所有值Object.values(obj),返回一个由obj所有的value组成的数组
  • 将所有的key和value以数组的形式展示:
   let obj = {
        'name': 'zhangsan',
        'age': 18
    }
    console.log(Object.entries(obj));
    // [['name', 'zhangsan'], ['age', 18]]
  • 判断一个属性是否是对象自有的(非共有属性)obj.hasOwnProperty('key')这是一个函数

如何修改或增加对象的属性

对象属性的增加或者更新有两种方式:

  1. 直接赋值
    let obj = {
        'name': 'zhangsan',
        'age': 18
    }
    obj.name = 'lisi';
    //或者 obj['name'] = 'lisi';
    // 或者 let uname = 'name'; obj[uname] = 'lisi';
  1. 批量赋值
    Object.assign(obj, { 'name': 'lisi', 'hobby': 'rap' });
  • 对象更新属性时,如果本来存在此属性,则更改属性的值,如果不存在,则增加一个新属性

name' in obj和obj.hasOwnProperty('name') 的区别

in操作符只能检查对象自身是否含有此属性,而hasOwnProperty函数可以检查此属性是对象的自身属性还是共有属性