
16.你对面向对象编程的理解面向过程和面向对象有什么区别对面向对象的理解以对象为核心靠封装、继承、多态组织代码绑定数据与操作强调对象交互和代码复用。与面向过程的区别面向对象以类/对象为模块数据处理绑定独立性高面向过程以函数为模块数据与处理分离。17. .||**是什么?.是可选链操作符用于安全访问深层对象属性遇到null/undefined 时短路返回 undefined||逻辑或运算符如果左操作数为 false 或 undefined则将右操作数赋值给左操作数。逻辑与运算符如果左操作数为 true则将右操作数赋值给左操作数。** 是指数运算符用于计算数值的乘方幂运算。18. async 和 await的作用是什么async和 await 结合后能让异步代码呈现同步代码的直观结构大幅简化异步函数写法。async函数返回值为 promise 对象promise 对象的结果由 async 函数执行的返回值决定await必须写在 async 函数中右侧的表达式一般为 promise 对象返回的是 promise 成功的值await 的 promise 失败了, 就会抛出异常, 需要通过 try…catch 捕获处理19.对象方法Object.values()返回一个给定对象的所有可枚举属性值的数组Object.entries()能将对象转换为一个包含键值对的数组方便对对象进行遍历或转换操作trimStart()消除前面的空格trimEnd();消除后面的空格flat将数组扁平化降维flatMap先对数组执行 map() 映射再对结果执行 flat()20. export 和 import分别有几种写法export(导出)有三种写法默认导出let school ‘大喇叭’;export default shool;export default是 ES6 模块默认导出的语法分别导出export function teach() {console.log(“我们可以教你开发技术”);};混合导出export {school,teach}import(导入)对应有三种写法默认导入import school from ‘./school.js’;console.log(school);// 大喇叭分别导入import {school, teach} from ‘./school.js’;console.log(school);// 大喇叭混合导入import * as school from ‘./school.js’;console.log(school.school);// 大喇叭21.如何检测一个数组是否包含某个值includes()有则返回true无则返回false。findIndex()是用于查找数组中第一个满足条件的元素的索引的方法返回该元素的索引值若未找到则返回 -1。find()查找数组中第一个满足指定条件的元素的方法找到的返回元素本身若未找到则返回 undefined。22. 给函数参数设置默认值有几种方法、最少3种直接设置默认值直接在参数声明时指定默认值。结合解构赋值结合对象解构为参数设置默认值适合多参数场景。使用函数表达式默认值设置为一个函数调用每次调用原函数时动态生成默认值。23.箭头函数语法简写规则提供了一种更加简洁的函数书写方式使用箭头定义函数多用于匿名函数的定义简写规则若只有一个参数可省略参数外的括号若函数体只有一条返回表达式的语句可省略大括号和 return 关键字若返回对象字面量需用括号包裹对象避免与函数体大括号混淆。24.如何对比两个对象是否相等如何合并两个对象比较Object.is可以进行比较即判断两个对象的值是否完全相同。合并Object.assign()方法、使用扩展运算符。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对象私有属性模拟私有定义常量防止对象属性名冲突