JS对象的增删改查、遍历以及解构赋值...

484 阅读2分钟

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