1、对象起步
1、创建方法
let user = new Object(); // "object constructor" syntax
let user = {}; // "object literal" syntax
2、基本使用
将一些属性放入{...}“键:值”对中:
let user = { // an object
name: "ppx", // by key "name" store value "ppx"
age: 18 // by key "age" store value 18
};
3、添加和删除 属性
添加一个布尔值:
user.isBoolean = true;
要删除属性,使用delete运算符:
delete user.age
- 当打印 user时 没有添加isBoolean
4、重要的内容 方括号访问对象 []
- 原因 ? 多字属性 单纯用. 不起效果
user['test add'] = 'add'
- 当然使用 方括号的修改/删除也是可以的
5、计算属性
let data = prompt("do you like it ?", "app");
let test = {
[data]: 7, // the name of the property is taken from the variable data
};
alert( test.app ); // 5 if data="app"
- 上面这个相当于
let data = prompt("do you like it ?", "app");
let test = {};
// take property name from the data variable
test[data] = 5;
- 更加复杂的用法
let data = 'app';
let test = {
[data + 'Test']: 5 // test.appTest = 5
};
6、键和值相同时可简写
:
function test(name, age) {
return {
name, // same as name: name
age, // same as age: age
// ...
};
}
2、属性名称限制
1、变量的名称不能等于语言保留词之一,如“for”、“let”、“return”等
对于对象属性,没有这样的限制:
// these properties are all right
let obj = {
for: 6,
let: 7,
return: 3
};
2、属性存在性测试 使用 in 操作符
"key" in object
let user = { name: "test", age: 18 };
alert( "age" in user ); // true, user.age exists
alert( "blabla" in user ); // false, user.blabla doesn't exist
3、for ... in 循环 语法:
for (key in object) {
// executes the body for each key among object properties
}
输出 的所有属性/值user:
let user = {
name: "test",
age: 18,
};
for (let key in user) {
// keys
alert( key ); // name, age
// values for the keys
alert( user[key] ); // test, 18
}
- 多说一句
数组经常使用 map((item,index) => (xxx))返回新数组 forEach 不会返回新数组