✨JavaScript基础
2021-06-15 12:44:39 0 举报
AI智能生成
前端开发必备JavaScript基础知识
作者其他创作
大纲/内容
BOM&DOM
事件流
一个历史页面,上面有若干个按钮的点击逻辑,每个按钮有自己的click事件,一键设置权限
addEventListeners控制冒泡、捕获属性
false 默认,冒泡
true 捕获事件
防抖和节流
应用场景
节流:resize/scroll
防抖:input输入
手写防抖和节流
触发的第一次函数会执行吗,触发的最后一次函数会执行吗
频繁触发时,第一次调用是立即执行还是延迟执行
事件循环机制
为什么会有event loop
为什么JavaScript是单线程
浏览器端的event loop
1主线程执行栈
异步任务分为两种
2微任务队列
Promise.then catch finally
await
mutationObserver
3宏任务队列
定时器函数setTimeOut、setInterval
用户交互事件I/O操作
UI渲染事件(如解析dom、计算布局、绘制)
JavaScript脚本执行事件 script整体代码
执行过程
同步代码压入调用栈中执行
遇到异步任务后,根据任务分类加入到任务队列中去
调用栈中的代码执行完成清空后,首先检查微任务队列中的任务,先执行
执行微任务期间,遇到新加入的微任务也会一同执行
然后压入宏任务队列中的代码执行,如此循环往复
node端的event loop
网络请求
ajax
客户端存储
模块化
立即执行函数
AMD异步模块定义规范
require.js
CMD类似于Commonjs规范
淘宝出的Sea.js使用上和requires.js基本相同
Node.js环境中使用CommonJS规范组织代码
module变量对象代表当前模块,exports属性是对外的接口导出
require命令同步导入模块,且对模块的导出是深克隆,保证了数据的隔离性
require的参数:/ 绝对路径,./ 相对路径,模块名称 导入核心模块
最新的 Node.js 提案中表示,Node 环境也会逐渐趋向于 ES Modules 规范
浏览器端我们遵循ES Modules规范
数据类型
基本数据类型
null和undefined的区别
0.1 + 0.2 != 0.3
js中整数的安全范围
toFixed可以做到四舍五入吗
不同进制间转换规则
++a和a++的区别
引用数据类型
基本引用类型
isNaN和Number.isNaN的区别
集合引用类型
描述NaN
判断是数组的方法
数组去重的方法
类数组与数组的转换方法
数组的常用方法
有赞:怎么修改数组元素而不改动原数组
添加元素
concat
扩展运算符
reduce
删除元素
slice
reduce
from+splice
filter
数组有哪些方法会改变自身
复制数组的方法
forEach无法跳出循环只能配合trycatch在循环体内throw跳出
[1,2,,,].length = 4有几个逗号拥有几个empty元素
几种for循环的区别
基本数据类型和引用数据类型在内存中的区别
类型检测
类型转换
转字符串类型
转数值类型
转布尔值类型
对象转基本数据类型
Symbol的类型转换
Object.is()和 ==、===
什么时候使用==
运算符
四则运算符
比较运算符
逻辑运算符
隐式类型转换在什么情况下发生
深浅拷贝
变量、作用域与内存
作用域链机制
var、let和const
this的指向
垃圾回收算法
哪些操作会造成内存泄漏以及编码优化
对象、类与面向对象编程
数据属性与访问器属性
原型与原型链
获取原型的方法及判断属性是否是原型属性
new操作符具体做了些什么
创建对象的几种方式及优缺点
继承的六种方式及优缺点
几种for循环的区别
for循环
for...in
Object.entries()和for...in的区别只在于,for...in还会枚举原型链中的方法
Object.keys
Object.values
都是返回对象自身可枚举的属性
forEach
for...of
函数
箭头函数和普通函数的区别
闭包
经典问题:for循环与闭包
闭包的日常应用
闭包解决了哪些问题
递归与尾递归
JavaScript中不存在尾递归?
递归的执行顺序
解释性语言,从上到下执行
函数式编程
异步编程
回调函数
在函数内部通过嵌套调用函数实现
回调地狱
嵌套调用
任务结果的不确定性
定时器函数
ajax网络请求
promise
promise是如何解决回调地狱问题的
回调函数延迟
返回值穿透
错误冒泡
promise中为什么要引入微任务
promise.all有什么特性
promise自身有哪些问题
generator生成器
generator 函数是如何暂停执行程序的?
async/await
async function实现原理?
promise和generator的语法糖,往底层说就是微任务和协程的应用
async是一个通过异步执行并隐式返回promise作为结果的函数
await会将协程执行权暂时交出,代码处理完成后将使用promise函数的resolve函数抛出值,父协程的代码执行完后检查微任务队列时,会将await的值处理
收藏
0 条评论
下一页