1. 对象的定义
对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。
var student = {
name: "blank",
no: 1470,
sex: "male",
call: function () { console.log("hello world"); },
"123": 456
};
上述代码中,name、no和sex称为键名(key),所有键名默认为字符串,所以可以不加引号。但是,需要注意的是,如果键名不加引号,那么键名的命名需遵守标识符的命名规则,即只能以字母、下划线和美元符号开头,后续可以出现数字。如果要定义不符合命名规则的键名,则必须为键名添加引号。
/*
var obj = {
12a: false
};
错误的,不符合命名规则
修改为下述代码
*/
var obj = {
"12a": false
};
"blank"、1470和"male"称为键值(value),键值可以是任意数据类型,如果一个属性的值为函数,通常把这个属性称为“方法”,它可以像函数那样调用。
// 调用student对象中的call方法
studnet.call(); // hello world
2. 对象的属性引用
2.1 链式引用
对键名符合命名规则的引用:
console.log(student.name); // blank
2.2 按照数组的形式引用
对键名不符合命名规则的引用:
console.log(student["123"]); // 456
console.log(student['123']); // 456
console.log(student[123]); // 456
3. Object.keys()
查看一个对象本身的所有属性,可以使用Object.keys方法,返回值为数组。
console.log(Object.keys(student));
// ['123', 'name', 'no', 'sex', 'call']
4. 对象的删除
delete命令用于删除对象的属性,删除成功后返回true。
delete student[123];
console.log(student[123]); // undefined
console.log(Object.keys(student)); // ['name', 'no', 'sex', 'call']
// 可见delete命令不仅删除了键值,同时还删除了键名