javaScript对象

156 阅读2分钟

「这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战」 。

一:对象介绍

1.对象是什么 :

对象是一种复杂数据类型

2.对象作用 :

以键值对方式存储多个数据

3.对象与数组异同点

        相同点:都是复杂数据类型,都可以存储多个数据
        不同点: 存储方式不同
        数组: 有序存储
        对象: 无序存储(键值对)
            
//需求: 存储一个人的信息  (姓名,年龄,性别)

        //1.使用基本数据类型来存储
        //(1)弊端:冗余,维护不便
        //(2)好处: 阅读性高
        let name = '班长'
        let age = 38
        let sex = '男'

        //2.使用复杂数据类型:数组
        //(1)好处: 一个变量存储多个数据
        //(2)弊端: 阅读性不高
        let arr = ['班长',38,'男']
        console.log(arr)

        //3.使用对象 : 存多个 + 阅读性高
        let obj = { name:'班长',age:38,sex:'男' }
        console.log(obj)
        

二:对象语法

1.声明对象

let 对象名 = {
 属性名:属性值,
 属性名:属性值,
  }

2.取值语法:对象名.属性名

3.细节:

对象中的属性值是什么数据类型, 取出来的时候就可以使用这个类型的所有语法

       > 如,对象的属性值是 数组, 则可以: 对象名.属性名[下标]
        >如,对象的属性值是 函数, 则可以: 对象名.属性名()
        

三.对象操作

1.查询对象特点

1.1 如果属性名存在,则获取属性值
1.2 如果属性名不存在,则获取undefined

2.查询对象属性两种语法

         点语法       obj.属性名
         字符串语法   obj['属性名']    obj[ 变量名 ] 
        
        

        //1.调用对象方法
        let res = obj.eat('榴莲')
        //2.获取对象属性 
        //2.1 点语法   对象名.属性名
        console.log( obj.name )
        console.log( obj.age )
        console.log( obj.sex )
        console.log( obj.aaa )//undefined
        
        //2.2 字符串语法   对象名[]
        /* 注意点: [] 里面一定是字符串, 如果写变量名,也是取这个变量中存储的字符串 */
        let sex = 'age'
        console.log( obj['name'])
        console.log( obj['age'])
        // sex是变量名,取这个变量中存储的字符串   obj[ 'age' ] 
        console.log( obj[ sex ])

四:对象操作:新增与修改

1.查询属性

        常用:点语法            对象名.属性名
        特殊场景:字符串语法      对姓名['属性名']

2.修改属性

        对象名.属性名   = 值
        对象名['属性名'] = 值

3.新增属性

        (1)如果已经存在的属性赋值,则是修改
        (2)如果不存在的属性赋值,则是新增
        

4.删除对象属性

        delete 对象性.属性名

2.遍历对象

  特殊的for-in循环  (专用于遍历对象)
    for(let key in 对象名){ 对象名[key] }