定义对象 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
要是想当一个变量使用, 必须使用 中括号语法, 而且不能加引号
如果加了引号, 那么就是当一个字符串去使用, 结果和上述的点语法相同
只有不加引号, 才会是当一个变量去使用