
25什么是数组解构赋值写出基础语法示例。对象解构赋值如何设置默认值核心作用是什么1:快速把数组里面的元素依次拿出来赋值给变量不用挨个下标去取。基础语法2:const user { name: “小明” }; const { name, age 20 } user; console.log(age); // 203简化代码不用重复写 .属性 / [下标] 获取数据快速提取数组、对象里面的值26ES6 扩展运算符… 的作用是什么如何用扩展运算符合并两个数组、复制一个对象把数组 / 对象里面的东西“摊开、拿出来”合并数组const arr1 [1,2]; const arr2 [3,4]; const newArr […arr1, …arr2]; console.log(newArr); // [1,2,3,4]复制数组const obj { name:‘张三’, age:18 }; const newObj { …obj }; console.log(newObj);27.箭头函数的简写规则有哪些箭头函数和普通函数最大的两点核心区别是什么简写规则1.只有一个形参小括号 () 可以省略2函数体只有一句 return 返回表达式大括号{}和return可以一起省略3无参数 或者 多个参数小括号不能省箭头函数 和普通函数最大两点核心区别箭头函数简写方便无自身 this无 arguments。28Symbol是什么类型核心特性是什么?Symbol的主要应用场景有哪些?1Symbol 是 ES6 新增的原始基本数据类型用来生成独一无二的值。2每调用一次 Symbol()得到的值永远唯一不能用 new Symbol()它不是构造函数不能参与隐式类型转换不能直接转数字可以转字符串3对象私有属性模拟私有定义常量防止对象属性名冲突29Set的核心特点是什么?如何实现数组去重Set常用的4个核心方法是什么各自作用1成员唯一不允许重复值无序集合没有下标索引可迭代对象可以用 for…of 遍历2const arr [1,2,2,3,3,3,NaN,NaN]; // Set转数组 const newArr […new Set(arr)] // 或者 Array.from(new Set(arr))console.log(newArr)// [1,2,3,NaN]3add(value) 作用向集合添加一个元素返回 Set 本身支持链式调用delete(value) 作用删除指定元素返回布尔值true 删除成功false 不存在has(value) 作用判断集合是否存在该元素返回布尔值clear() 作用清空集合所有成员无返回值30Map和普通对象的核心区别是什么Map常用取值、存值方法是什么?如何遍历 Map?1键 (key) 类型不同 对象键只能是字符串 / Symbol写数字会自动转字符串 Map键可以是任意类型数字、对象、数组、函数、NaN 等。2.键名是否重复 对象同名键会覆盖 Map键唯一重复set会覆盖旧值。3.顺序 对象ES6 后属性有一定顺序但不保证 Map严格保留插入顺序。4.获取长度 对象需要Object.keys(obj).length Map直接用 map.size 属性。5.可迭代性 对象不能直接 for…of Map 本身是可迭代对象可直接遍历。6.原型 对象自带原型链有默认属性Map 无原型自带属性。2map.set(key, value)存值添加 / 修改键值对返回 Map 本身支持链式const m new Map()set(‘name’,‘张三’)set(100, ‘分数’3Map 的遍历方式4 种常用for…of 直接遍历拿到 [key,value]map.keys()遍历所有键map.values()遍历所有值map.entries()遍历键值对和直接 for…of 等价31简述find和findindex()的作用与区别includes相比indexof的优势是什么find()作用查找数组第一个满足条件的元素返回【元素本身】找不到返回 undefined2. findIndex()作用查找数组第一个满足条件的元素返回【下标索引】找不到返回 -1includes () 对比 indexOf () 的优势indexOf (值)返回下标找不到返回 -1无法识别数组中的 NaNincludes (值)返回布尔值 true/false可以识别 NaN32.flat() 方法的作用是什么默认参数和 Infinity 参数的区别flatmap 的执行逻辑是什么使用场景一、Array.prototype.flat ()扁平化数组把多维数组降维返回新数组不修改原数组会自动移除数组中的空项empty slot。2默认depth 1只展开第一层嵌套数组更深的数组保留原样Infinity无限层级无论嵌套多少层全部摊平为一维数组3arr.flatMap(callback) 先 map再自动 flat (1)4一对多转换一个元素映射成多个元素转换 过滤一体返回空数组 [] 代表舍弃当前项替代 map().flat(1)只遍历一次数组性能优于连续调用 map flat33ES6如何给函数参数设置默认值写出示例。函数默认参数的优先级和变量 提升规则是什么?12实参 默认参数 传了实参且不是undefined就用传入的值不传 / 传undefined才启用默认值。参数的作用域参数形成独立的作用域参数作用域重点参数默认值是在函数调用时才求值不是函数定义时。形参之间可以相互引用前面的参数后面可以直接用3函数参数默认值开启了参数作用域 当函数设置了参数默认值时参数会形成一个独立的参数作用域在函数体作用域外面函数体内部的 let / const 声明的变量不会提升覆盖参数同名会形成暂时性死区。34剩余参数.args的作用是什么和 arguments的区别剩余参数在参数列表中的位置要求是什么?1作用收集函数剩余的实参放到一个真实数组中。2类型…args真实数组直接使用数组 APIarguments类数组对象不是数组要用 Array.from(arguments) 转数组ES 版本剩余参数ES6 新增argumentsES5 就有旧语法箭头函数剩余参数✅ 箭头函数可以使用arguments❌ 箭头函数没有 arguments 对象访问 arguments 会去外层作用域找收集范围…args只收集剩余没被形参接收的参数可控arguments收集全部实参3必须放在形参列表的最后一位后面不能再有其他形参35ES6模块化默认导出和分别导出的语法区别? import导入的三种常用方式 是什么12方式 1导入默认导出方式 2导入命名导出分别导出方式 3命名空间导入全部导入打包成一个对象36ES6 class 声明类的基础语法是什么?constructor 的作用ES6如何实现 类的继承super关键字的作用1constructor 的作用constructor 是类的构造方法1.使用 new 创建实例时自动调用 constructor2.用来初始化实例属性给 this 挂载属性3.一个类只能有一个 constructor多写会报错4.如果不写class 会自动添加一个空的 constructor(){}34子类 constructor 中 super()调用父类的构造函数子类构造函数里必须在访问 this 之前调用 super ()否则报错作用把父类实例属性挂载到子类实例上场景 2子类方法中 super.方法名()调用父类原型上的方法