Js对象

56 阅读2分钟

简单了解对象

  • 什么是对象

    • 首先排除男女朋友, 我们这是正经编程
    • 对象是一个 复杂数据类型, 也叫做 引用数据类型
    • 虽然我们说是复杂类型, 但是也没有很复杂, 只不过是存储了一些基本数据类型的集合
var obj = {
    num: 100,
    str: 'hello',
    boo: true
}
  • 这里的 {} 和函数中的 {} 不一样, 函数内部书写代码, 对象里面是书写数据的

  • 对象就是一个键值对的集合

    • 什么是键值对?

      • 对象 obj 中, num 是键, 100 是值
      • 对象 obj 中, str 是键, 'hello' 是值
      • 对象 obj 中, boo 是键, true 是值
    • 其实就是我们准备一个房子, 把我们想要的数据放进去, 然后把房子的地址给到变量名, 当我们需要某一个数据的时候, 就可以根据变量名里面存储的地址找到对应的房子, 然后去房子里面找到对应的数据

创建对象

  • 字面量方式创建对象

    • 语法:var obj = {} var obj1 = {键值对, 键值对}
  • 内置构造函数创建

    • 语法:var obj = new Object()
  • 对象内对于 键(key) 的要求

    • 推荐使用符合变量命名规则和规范的名字

    • 可以使用纯数字当作 键名

      • 这种情况下该属性会排列在最前面
    • 可以使用任何特殊符号

      • 使用特殊符号的时候,在书写时需要被引号包裹

对象数据类型的操作(增删改查)两种语法

  • 点语法

    var obj = {}
    obj.name = 'qianfeng'   // 增
    obj.name = 'qianfeng123'    // 改
    console.log(obj.name)       // 查
    delete obj.name         // 删
    
  • 中括号语法(数组语法)

    var obj = {}
    obj['name'] = 'qianfeng'        // 增
    obj['name'] = 'qianfeng123123'  // 改
    console.log(obj['name'])        // 查
    delete obj['name']              // 删
    
  • 两者的差异

    • 符合变量命名规范与规则的情况,两者并无差异
    • 操作不符合变量命名规范与规则的名称时,比如纯数字或者带有特殊符号的,就只能用中括号语法
    • 涉及变量相关的时候,只能使用中括号语法

for in 循环遍历对象

for (var k in obj) {
    console.log('我执行了', k, obj[k])
}