JS实用篇复习笔记(7)

191 阅读1分钟

1、对象起步

1、创建方法

let user = new Object(); // "object constructor" syntax
let user = {};  // "object literal" syntax

image.png

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

image.png

4、重要的内容 方括号访问对象 []

  • 原因 ? 多字属性 单纯用. 不起效果
user['test add'] = 'add' 

image.png

  • 当然使用 方括号的修改/删除也是可以的

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
};

image.png

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 不会返回新数组