对象

你有对象吗?没有就可以new一个对象:万物皆对象

1.对象的概念:对象可以看成是一个容器,用来存储数据

2.表现形式

[ ]数组

{ }对象

null 空 (特殊)

3.对象的创建

声明式/直接创建 var obj={ }

构造函数方式 var obj=new Object()

注意

大括号是对象的表达形式 创建就表示有了对象的容器 但是还没有数据

使用构造函数方式创建的是时候 new关键字后面的英文单词首字母记得要大写

重点-对象的数据存储

有两种方式

1.使用声明式创建对象的数据存储方法

var obj={

键1:值1

键2:值2

键3:值3

}

2.var obj=new Object(

{

键1:值1

键2:值2

键3:值3

}

)

总结

1.对象的数据都是以键值对的方式进行存储的(属性和属性值)

2.键值对常见的英文单词可以表示为 key:value

3.每个键值之间需要使用冒号隔开 每个键值对结束了后面需要使用逗号

4.对象中的数据存储都是无序的:无序的数据集合

对象数据的写法需要注意的点

1.书写键值对中的键的时候需要使用引号

键的默认数据类型是字符串,但可以省略不写

2.书写键值对总的值需要注意点

值可以根据需求去决定 可以使任意的数据类型

对象是无序的

对象的访问:取到对象中的数据显示在浏览器的显示区域的过程叫做渲染

访问对象的方式

1.对象.键

2.对象["键"]

var obj = {
          name:"彭于晏",
          age:18,
          gender:"男",
          "background-color":"saopink"
      }
      // console.log(obj.age,obj.name,obj.gender,obj.background-color)
      console.log(obj["age"],obj["name"],obj["gender"],obj["background-color"])
      console.log(obj,obj.wife) // undefined

 

总结

1.两种方式都可以取到对象中的数据 通过对象中的键获取值

2.使用对象.键这种方式获取的时候需要注意键中不能有连接符号 报错获取不到

3.获取对象中的键的时候 如果这个键不存在会返回undefined

遍历:针对与对象中的每个数据进行循环操作拿到你想要的数据信息

循环:根据条件虚幻得出你想要的需求数据

在对象中为什么会存在遍历?循环得到所有的数据

对象中遍历的方法

for(var 自定义的名称 in obj){

//可以输出当前对象中的每个键

}

var person = {
          name:"彭泉",
          age:50,
          gender:"不详",
          wife:"chou",
          salary:"0.3w包吃住"
      }
      for(var i in person){
          console.log(i,typeof i)
          // console.log(i) // 有键了获取值
          // 第一种方式获取 对象.键
          // console.log(person.i)
          console.log(person[i])
      }

解释取数据的过程中出现的一些问题

1.为什么person.i获取到的值全部是undefined

对象.键 后面的键默认的数据是字符串

使用for...in这种方式获取的变量 ,所获取到的就是undefined

2.为什么person["i"]获取到的值全部是undefined

对象[“键”] 默认的数据时字符串

这种方式获取对象中的值不需要加引号了 本来就是字符串

3.这两种方式获取对象的时候建议使用第二种方式获取 对象[键]

3.获取到了数据 这些数据可以渲染在页面中,还可以对数据进行一些操作

对象中的方法:函数

1.对象中的键值对的得值可以是任意的数据类型

2.值也可以是一个函数 在对象中的函数就是当前这个对象的方法

var person = {
          name:"彭泉",
          age:50,
          gender:"不详",
          wife:"chou",
          salary:"0.3w包吃住",
          eat:function(){
              console.log('彭泉淦饭人')
          }
      }
      console.log(person.name)
      console.log(person["age"])
      console.log(person.eat) // 当前eat后面的值 但是这时候值是函数 所以输出得到就是整个函数体
      // 想要这个方法执行 那就是调用函数
      person.eat()

想要执行这个方法 ,那么必须要调用这个函数

对象的操作

1.增加:对象.键=值

2.删除:delete 对象.键(慎用)

3.修改:对象.键 =值

4.查询:对象的访问 对象.键/对象["键"]

var person = {
          name:"佑周同学",
          age:38,
          gender:'女',
          wife:{
              name:"彭泉"
          }
      }
      person.money = 0 // 没有的话就表示新增一个
      person.money = 1800 // 有的话就表示覆盖修改
      delete person.name
      console.log(person)
  
      // 拓展一种删除的方法 
      for(var i in person){
          delete person[i]
      }
      console.log(person)

构造函数的概念

主要是使用了new关键字创建对象、数组、字符串、函数......

// 1.创建对象
      var obj = new Object()
      console.log(obj)
  
      // 2.创建函数
      function Fn(){}
      var fun = new Fn()
      console.log(fun)
  
      // 3.数字类型
      var num = new Number()
      console.log(num)

构造函数的总结

1.所有的都可以使用构造函数方式去创建 只是比较麻烦目前不推荐使用

2.关键字new只是区分普通函数和构造函数的一个方法

**3.this指向的问题:构造函数中this可以表示赋值操作

1.数组的概念:是用来存储数据的 对象的另外一种表达形式

对象是无序的数据集合

数组是有序的数据集合

2.数组的创建方式

声明式/直接创建方式var arr=[ ]

构造函数的方式var arr =new Array( )

3.数组的数据存储

声明式var arr=[数据1,数据2,数据3]

构造函数方式 var arr=new Array(数据1,数据2,数据3)

总结

对象中是以键值对的方式进行存储的 数组中直接书写数据的值即可

数组数据中的值也可以是任意的数据类型

数组中也是有“键”的概念,可以称为下标/索引

数组中表达的形式 索引:值 索引是有序的(默认是从0开始的)