对象的概念
对象就是一组键值对(key-value)的集合,是一种无序的复合数据集合。
对象的本质
- 键值对 属性名:属性值
- 对象的所有健名都是字符串(ES6中又引入了Symbol可以作为键名)
- 符合命名规范的健名可以不加引号,不符合命名规范的健名必须要加引号 , 否则会报错
对象的意义
存储数据
对象的属性
- 如何理解:对象的属性也就是对象中的变量
- 读取属性
var obj = {p:"hello"} ooj.p; //"hello" 使用点运算符
var obj = {p:"hello"} ooj["p"]; //"hello" 使用方括号运算符
注意:使用方括号时,健名必须放在引号里面,否则会当成变量处理健名都是字符串
注意:数字键不能使用点运算符 会报错使用方括号时,不需要加引号
3.属性的赋值
1.直接赋值
var obj = {}; obj.foo = 'Hello'; obj['bar'] = 'World'; //两种语法都可以赋值
2.JavaScript 允许属性的“后绑定”,也就是说,你可以在任意时刻新增属性,没必要在定义对象的时候,就定义好属性。
4.属性的查看
Object.key(obj)方法
功能:Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组
参数:要返回属性的对象
返回值:一个表示给定对象的所有可枚举属性的字符串数组;
var obj = { key1: 1, key2: 2 }; Object.keys(obj); // ['key1', 'key2']
5.属性的删除
通过delete命令来删除对象的属性
注意:只有一种情况,delete命令会返回false.那就是该属性存在,且不得删除.
var obj = Object.defineProperty({}, 'p', { value: 123, configurable: false }); obj.p // 123 delete obj.p // false
对象的方法
也就是对象中的函数
对象的引用
不同变量名指向同一个对象,那么他们就是这个对象的引用
简单地说就是 不同变量指向同一个内存地址
对象的遍历
使用for-in进行对象的遍历
for...in语句以任意顺序遍历一个对象的除Symbol以外的可枚举属性
遍历的结果是obj的健名
var obj = {a:1, b:2, c:3}; for (var i in obj) { console.log("obj." + i + " = " + obj[i]); } // Output: // "obj.a = 1" // "obj.b = 2" // "obj.c = 3"