1.对象的增删改查
let obj = new Object()
// 增
obj.name = 'sss'
obj['age'] = 16
console.log('obj', obj);
// 删
delete obj.name
delete obj['age']
console.log(obj);
// 改
obj.name = 'lll'
obj['age'] = 19
// 查
console.log(obj.name);
console.log(obj['age']);
2.对象的遍历
1.在JavaScript中对象和数组一样是可以遍历的
2.什么是对象的遍历?
对象的遍历就是依次取出对象中所有的属性和方法
3.如何遍历一个对象?
在JS中可以通过高级for循环来遍历对象
以下代码的含义: 将指定对象中所有的属性和方法的名称取出来了依次的赋值给key这个变量 for(let key in obj){}
for...in...无法遍历原型对象中的属性和方法
class Person{
constructor(myName, myAge){
this.name = myName;
this.age = myAge;
}
// 注意点: ES6定义类的格式, 会将方法默认放到原型对象中
say(){
console.log(this.name, this.age);
}
}
function Person(myName, myAge){
this.name = myName;
this.age = myAge;
this.say = function(){
console.log(this.name, this.age);
}
}
let p = new Person("LNJ", 34);
console.log(p);
for(let key in p){
if(p[key] instanceof Function){
// 不输出函数
continue;
}
// console.log(key); // name / age / say
// 注意点: 以下代码的含义取出p对象中名称叫做当前遍历到的名称的属性或者方法的取值
console.log(p[key]); // p["name"] / p["age"] / p["say"]
// 注意点: 以下代码的含义取出p对象中名称叫做key的属性的取值
// console.log(p.key); // undefined
}
3.对象的解构赋值
1.在对象的解构赋值中, 等号左边的格式必须和等号右边的格式一模一样, 才能完全解构
let obj = {
name: "lnj",
age: 34
}
let {name, age} = obj // name = 'lnj';age = 34
2.在对象的解构赋值中, 两边的个数可以不一样
let obj = {
name: "lnj",
age: 34
}
let {name} = obj // name = 'lnj'
3.在对象的解构赋值中,如果右边少于左边, 我们可以给左边指定默认值
let obj = {
name: "lnj",
age: 34
}
let {name, age, height = 1.8} = obj
注意点:
在对象
解构赋值中,左边的变量名称必须和对象的属性名称一致, 才能解构出数据 顺序可以不一致,因为它会去匹配相同的属性名称
如果需要更改左边变量的名称
let obj = {
name: "lnj",
age: 34
}
let {name: username, age: userage} = obj
console.log(username);
console.log(userage);