20:什么叫继承?ES5怎么模拟继承,ES6class用哪个关键字实现继承?
继承就是让一个对象拥有另一个对象的属性和方法,复用代码用exteends关键字实现继承构造函数里必须写super
21:什么是实例?什么是原型?多个实例对象怎么共用同一个方法,节省内存?
实例是new构造函数得到的具体对象;原型是构造函数自带的共享对象;把方法写在构造函数prototype上,所有实例共用同一个方法,节约内存
22:解构赋值的时候,如果对象里面没有这个·key不设置默认值,变量会拿到什么
拿到 undefined
23:扩展运算符…,即能拆数组,又能收集剩余参数,什么时候拆,什么时候收集?
…在等号右边函数参数里是拆,在等号左边是收集
24:可选链运算符?.是用来解决什么报错问题?空值合并运算符??跟逻辑或||有什么坑?
?. 防止访问嵌套属性时因上级为 null/undefined 导致属性读取报错;|| 会把 0、空字符串等有效假值替换成默认值,而??仅在值为 null/undefined 才启用默认值。
25:指数运算符,是干啥的,对比math。pow()
** 指数运算符用来计算次方;功能近似 Math.pow,但**支持 BigInt,且运算符优先级有坑,负底数要加括号
26:函数参数写默认值,如果传入 undefined,会启用默认值吗?传入null呢?
传入undefined >会启用默认值传null>不会启用直接拿null
27:ES6模块化,import导入的模块,是动态导入还是静态导入?impot动态导入有什么使用场景?
import是静态导入。编译加载,import拿到模块对象,再default拿默认导出
28:什么是微任务、宏任务?大白话讲事件循环执行顺序。
宏任务:是大块任务,比如script整体代码微任务:是宏任务里面附带的小任务同步1>同步2>微任务>宏任务
29:什么叫内存泄漏?JS写代码哪些情况谷易道成内存泄漏?
内存泄漏就是无用对象无法被垃圾回收持续占用内存;JS 常见原因:意外全局变量、未清定时器、未移除事件监听、闭包长期持有引用、Map 缓存不清理、保留已删除 DOM 的引用。
30:AJAX异步请求,如果把async设置false,变成同步请求,会有什么负面影响?
浏览器页面会卡死,主线程阻塞页面完全冻结
31:HTTP请求常见请求方法、PUT、DELETE,分别一般用来干什么?
put用来把资源整体替换成新数组DELETE用来删除服务器上指定的资源
32:.什么是实体对象,什么是字面量对象?创建对象有哪几种常见写法?
字面量对象是直接{}手写创建;实体对象一般指new构造函数生成的实例;创建对象常用:字面量 {}、new Object、自定义构造函数 new、Object.create。
es6错题总结
RELATED READING
延伸阅读
更多一线实战笔记与深度复盘,助您持续精进