js 进阶
文章平均质量分 71
js 进阶
山间听雨声
这个作者很懒,什么都没留下…
展开
-
js解码编码decodeURI与decodeURIComponent区别
其中encodeURI()主要用于整个URI(例如,http://www.jxbh.cn/illegal value.htm),而encode-URIComponent()主要用于对URI中的某一段(例如前面URI中的illegal value.htm)进行编码。而encodeURIComponent()则会对它发现的任何非标准字符进行编码。经我的观测,很多网站的cookie在进行编码的时候,是encodeURIComponent格式的,所以应该使用decodeURIComponent()进行解码。...原创 2022-08-12 17:15:57 · 291 阅读 · 0 评论 -
常见 Mock 方案对比
场景说明:在真实工作环境中,由于后端与前端并行开发,所以在开发前期是没有后端接口可供前端使用的,所以学会最适合自己的 Mock 数据的方法就很有必要。本篇文章会对比一些业界常见的 Mock 方案,大家根据自身情况选择并配置其中最适合的方案。常见 Mock 方案1. 代码侵入(直接在代码中写死 Mock 数据,或者请求本地的 JSON 文件)侵入的意思是其实本身书写的相关代码是一些与真实项目无关的代码,后期等真实接口出来之后,这些代码需要删除的,这就是代码侵入了项目。优点:无.原创 2022-08-12 17:36:16 · 484 阅读 · 0 评论 -
手写 Promise.all 和 Promise.race
一、手写 Promise.all:思路:1. 首先 Promise.all返回的肯定是一个 promise对象,所以可以直接写 return new Promise((resolve, reject) => {});2. 遍历传入的参数,用Promise.resolve()将参数的每一项进行一个包裹,使其变成一个promise对象,因为传入的参数不一定是Promise类型,可能不存在 then 方法;3. 关键点是何时resolve,可以声明一个变量,进行计数,当在每个promise.原创 2021-10-21 17:02:23 · 690 阅读 · 1 评论 -
Promise 是什么?
异步会带来什么问题?如果两个动画需要按顺序执行,即第一个执行结束,再开始第二个,传统是使用回调,那就会造成回调深渊Promise示例:const p1 = new Promise((resolve, reject) => {ajax({url: xxx,success(data){resolve(data)},error(err){re...原创 2021-10-15 11:16:42 · 193 阅读 · 0 评论 -
eventloop事件循环/轮询
如下图:说明:call stack调用栈,是执行同步代码的地方web API是放置异步回调的地方,如定时器的timercallback queue是回调队列,即当web api中的函数达到可以触发回调函数的条件时,如setTimeout时间为1s,浏览器在web api中设置一个timer,当时间到达1s,且call stack中为空,没有同步代码在执行的时候,web api就把该定时器的回调函数推入到callback queue队列中具体步骤1. js单线程,会先执行同步函数,即在ca原创 2021-07-08 14:03:27 · 282 阅读 · 0 评论 -
宏任务和微任务
导读:什么是宏任务 什么是微任务 两者有什么区别1. 什么是宏任务macroTask?宏任务:包含执行整体的js代码、事件回调(DOM事件),XHR回调(异步请求,接口回调),定时器(setTimeout/setInterval/setImmediate),IO(input和output,文件的读出和写入)操作,UI render2.什么是微任务microTask?微任务:更新应用程序状态的任务,包括promise回调,MutationObserver,process.nextTi..原创 2021-07-08 14:13:12 · 1247 阅读 · 0 评论