对象

102 阅读3分钟

定义对象 var obj1 = {}

属于 引用数据类型(复杂数据类型) 他只是一个存储 基本数据类型的集合

对象的花括号中书写的不是代码, 而是键值对格式的数据

键值对 --- key/value --- 属性名:属性值

冒号 左边的统称为: 键/key/属性名

右边统称为: 值/value/属性值

var obj = { num: 1, sum: 10086, name: '张三', age: 18, bo1: true, bo2: false } console.log(obj)

对象的操作(曾删改查)点语法

var obj = { name: '张三', id: 'QF001' } console.log('原本的对象: ', obj) 1 增 对象名.新的属性名 = 对应的属性值 obj.age = 18 2 删 delete 对象名.要删除的属性名 delete obj.id 3 改 对象名.要修改属性值的属性名 = 新的属性值 obj.name = '张三丰' console.log('操作后的对象: ', obj) 4 查 对象名.要查询的属性名 会得到对应的属性值 obj.name console.log(obj.name) //打印出来

对象的操作(曾删改查)中括号语法

注意:(属性名字不是数字,就要加 ' ' 是数字可加可不加,如果是变量不加 ' ' )

var obj = { name: '张三', id: 'QF001' } console.log('原对象: ', obj) 增 对象名['要新增的属性名'] = 对应的属性值 obj['age'] = 18 删 delete 对象名['要删除的属性名'] delete obj['id'] 改 对象名['要修改的属性名'] = 新的属性值 obj['name'] = '李四' console.log('操作后的对象: ', obj) 查 对象名['要查询的属性名'] 会得到对应的属性值 console.log(obj['name'])

点语法和中括号语法区别

推荐

  • 正常情况下全都使用 点语法

  • 涉及到变量的时候 使用 中括号语法

只要正常情况, 对象的属性名符合变量的命名规则与规范的情况下, 使用点语法或者中括号语法 没有任何区别

但是在遇到一些特殊的属性名的时候 就要更换了, 比如 说属性名为数字

还有一种情况, 属性名想要使用变量的时候, 也需要使用1中括号语法

var obj = { 0: '数字0', 1: '数字1', 2: '数字2', name: '张三' } console.log(obj) // console.log(obj.0) // 语法不允许 console.log(obj[0])


var obj = { 0: '数字0', 1: '数字1', 2: '数字2', name: '张三' } var myName = 'name' console.log(obj.myName) //在 JS 中, 对象的点语法, 会将 . 后边的 这个单词/属性 视为一个普通字符串 而不会当成一个变量 (所以行不通) console.log(obj['myName']) //要是想当一个变量使用, 必须使用 中括号语法, 而且不能加引号 如果加了引号, 那么就是当一个字符串去使用, 结果和上述的点语法相同 只有不加引号, 才会是当一个变量去使用 console.log(obj[myName]) // 只有不加引号, 才会是当一个变量去使用

在 JS 中, 对象的点语法, 会将 . 后边的 这个单词/属性 视为一个普通字符串

而不会当成一个变量

所以现在相当于 去 对象 obj 中 查找一个 属性名为 myName 的键值对

但是对象中并没有, 所以得到了一个 undefined

要是想当一个变量使用, 必须使用 中括号语法, 而且不能加引号

如果加了引号, 那么就是当一个字符串去使用, 结果和上述的点语法相同

只有不加引号, 才会是当一个变量去使用