js-对象

125 阅读2分钟

对象:是一种复杂数据类型

对象作用 :以键值对方式存储多个数据

对象与数组异同点

        相同点:都是复杂数据类型,都可以存储多个数据
        不同点: 存储方式不同
            数组: 有序存储
            对象: 无序存储(键值对)
            
   1.声明对象  

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

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

    3.细节: 对象中的属性值是什么数据类型, 取出来的时候就可以使用这个类型的所有语法
        如,对象的属性值是 数组, 则可以: 对象名.属性名[下标]
        如,对象的属性值是 函数, 则可以: 对象名.属性名()
        

注意点

 对象声明使用 {} ,  数组声明使用 []

 对象中多个属性之间使用什么符号隔开?

 对象中的函数通常叫对象方法
  1. 对象属性特点

    (1)属性名 存在 , 则是获取 属性值

    (2)属性名 不存在 , 则是获取 undefined

2.对象取值有两种语法

 2.1 点语法:     对象名.属性名

 2.2 []语法 :    对象名[ '属性名' ]   对象名[ 变量名 ]
 

查询属性

    1.    点语法      对象名.属性名
        
        []语法      obj['属性名']    obj[ 变量名 ] 
        
        总结: 需要解析变量的时候使用"[]语法", 不需要就用 "点语法"
        
    2.修改属性 :对象名.属性名 = 值
    
    3.新增属性 : 对象名.属性名 = 值
    
        (1)如果对象属性名存在,则是修改属性值
        
        (2)如果对象属性名不存在,则是新增属性
        
    4.删除属性(了解) :  delete 对象名.属性名
    
    5.遍历对象: 查询对象所有的属性
     
    5.1 数组遍历:固定的for循环   for(let i = 0;i<arr.length;i++){ arr[i] }
    
    5.2 对象遍历:固定的for-in循环  for(let key in 对象名 ){ 对象名[ key ] }
    
    

js数据类型有很多种,分为两大类

**   1.值类型(简单数据类型string boolean number undefined null) :
   
   
     栈中存储数据,赋值拷贝的是数据,修改拷贝后的数据对原数据没有影响.

   2.引用类型(复杂数据类型 array  function  object) :
   
   
    栈中存储地址,堆中存储数据。赋值拷贝的是地址,修改拷贝后的数据对原数据有影响**