JS--对象

92 阅读3分钟

对象

什么是对象?

JS中的一种数据格式,对象在JS中的数据类型数据为:引用数据类型(也有喜欢叫 复杂数据类型)

如何向变量中存储一个叫做对象的数据呢?

  语法1:var obj={键值对}

  键值对--- key:value

  如果对象内部有多个键值对,那么需要使用逗号间隔

什么是键值对(拿对象obj为例子)

      在这个对象中,a 为 key,100 为对应 value

      另外一种叫法:a 为 键,100 为对应的值

      另外一种叫法:a 为 属性名,100为对应的 属性值

var obj = {
      a: 100,
      b: 200,
      c: 300,
      q: 666
    }
    console.log(obj)

创建对象

创建对象分为两种方式:

1.字面量的形式(使用频率比较高)

   语法: var obj={键值对}

2.内置构造函数的创建

    语法1: var obj1=new Object()  //创建空对象

    语法2: var obj1=new Object({a:1,b:2})  //创建一个具有属性或者说具有键值对的对象

注意: new Object 的O是大写的,不是小写的

面试题:JS中创建对象的方式有哪些?

        目前暂时是两种

         1.字面量的方式

         2.内置构造函数的方式

对象的操作(增删改查)

换句话说,就是对内部的属性的操作

分为两种方式

1.点语法
    // 1.点语法---查询:获取到对象内部某一个属性对应的属性值
    // console.log(obj.a) //1
    // console.log(obj.b) //abc

    // 2.点语法---新增:向对象内部新增一个属性
    // obj.q = 'ABCD'
    // obj.w = 'QWER'
    // console.log('最新的对象', obj)

    // 3.点语法---修改:修改对象内部某一个属性对应的属性值
    // obj.c = false
    // console.log('修改属性后的对象', obj)

    // 4.点语法---删除:删除对象内部的某一个属性
    // delete obj.a
    // console.log('删除属性后的obj',obj)
2.中括号语法(数组语法)

一般大部分情况下,点语法与中括号语法,作用相同,怎么选择都可以

    // 5.中括号语法===查询
    // console.log(obj['a'])  //1
    // console.log(obj['c'])  //true

    // 6.中括号语法===新增
    // obj['q'] = 666
    // console.log('新增后的obj', obj)

    // 7.中括号语法===修改
    // obj['a']=111
    // console.log('修改后的obj',obj)

    //8.中括号语法===删除
    // delete obj['a']
    // console.log('删除后的obj',obj)

特殊情况,我们需要使用中括号语法

  1.对象的属性名,有纯数字或者特殊符号,这个时候,就只能使用中括号语法

    //  特殊情况1
     var obj = {
       100: '我的属性名时 纯数字100',
       '!': '我的属性名是 特殊符号!',
       '@': '我的属性名是 特殊符号@'
     }
     console.log(obj[100])
     console.log(obj['100'])
     console.log(obj['!'])
     console.log(obj['@'])

 2.如果涉及变量相关的时候,也需要使用中括号

// 特殊情况2
    var obj = {
      a: 1,
      b: 2,
      name: 'abc'
    }
    var myName = 'name'

for in 循环遍历对象

for in 一个循环语句

语法: for(var i in 要遍历的对象){循环要执行的代码}

对象:一种数据格式

遍历:一般我们会说‘遍历对象’/‘遍历数组’

‘遍历对象’ 想办法拿到对象内部所有的属性名与属性值