批改状态:合格
老师批语:完成的不错, 继续加油
// ?解构赋值let arr = [10,200]let a = arr[0]let b = arr[1]console.log(a,b)console.log('------------')// * 一,解构语法,数组解构// ! 模板 = 集合 (数组,对象)let [uname,email] = ['张三','123456qq.com'];console.log(uname,email)// ! 更新 在[],{},()前面的分号不能省略; [uname,email] = ['李四','56qq.com'];console.log(uname,email);console.log('------------');// ? 1.值的数量<变量数量,传递默认值解决[uname,email,gender='女'] = ['王五','aasasdqq.com'];console.log(uname,email,gender);console.log('------------');// ? 2.值的数量>变量数量,...rest解决[uname,...arr] = ['赵六','aasasdqq.com','男'];// ? 会压缩到数组里面console.log(uname,arr);// ? 展开数组打印console.log(uname,...arr);console.log('------------');// ? 应用场景:交换2个数let x = 10;let y = 20;console.log(`x = ${x} , y = ${y}`);[y , x] = [x , y]console.log(`x = ${x} , y = ${y}`)console.log('------------');// * 二,解构语法,对象解构// ? 变量名 === 属性名let {num , price} = {num:4 , price: 200}console.log(num , price);// ? 更新,{}不能出现在左边为左值,所以加上()转为表达式({num , price} = {num:10 , price: 200})console.log(num , price);console.log('------------');// ? 命名冲突:别名,解决let {pnum , price:uniPrice} = {pnum:'手机' , price: 2000}// ? 访问别名console.log(pnum , uniPrice);console.log('------------');// ? 应用场景:克隆对象let lesson = { name: 'ES6', score: 88 }console.log(lesson)// 如果想创建二个不相关的对象,值又完全一样,只能克隆let { ...obj } = lessonconsole.log(obj)console.log(obj != lesson)console.log('-----------------')// ? 应用场景2 : 解构传参let show = function (user) {// user 是一个对象return `姓名:${user.uname} , 邮箱:${user.email}`}let user = { uname: '王五', email: 'dddfdfdf@qq.com' }console.log(show(user))// * 使用对象解构进行简化传参show = function ({ uname, email }) {// user 是一个对象return `姓名:${uname} , 邮箱:${email}`}user = { uname: '小米', email: '45678@qq.com' }console.log(show(user))

let course = {lesson: {name: 'ES6',score: 60,},// 读取接口getScore() {return {name: this.lesson.name,course: this.lesson.score,}},// 设置接口setScore(score) {if (score >= 0 && score <= 100) {this.lesson.score = score} else {console.log('成绩必须在1-100分之间')}},}console.log(course.lesson.score)console.log(course.getScore())course.setScore(50)console.log(course.getScore())console.log('-------------------')// ? 用户习惯// console.log(course.score);// course.score = 90// ? 使用"访问器属性" 就可以实现course = {lesson: {name: 'ES6',score: 60,},score: 99,// getScore ===> get score// 普通方法 ===> 访问器属性// 如果使用访问器属性, get必须要有, set 可选get score() {return {name: this.lesson.name,course: this.lesson.score,}},// 将一个方法,伪装成"属性"set score(score) {if (score >= 0 && score <= 100) {this.lesson.score = score} else {console.log('成绩必须在1-100分之间')}},}// 经过包装和伪造, 现在就可以像访问属性一个访问一个方法了// course.score === course.get score()console.log(course.score)course.score = 50console.log(course.score)// ! 访问器属性 > 同名属性

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号