- 博客(7)
- 收藏
- 关注
原创 一个简单的顺序执行的任务队列思路
场景 在开发中有这样一个需求:有若干个下载任务(事先不知道数量):A,B,C,D……需要按顺序执行这些任务(Axios)并且必须等到前一个任务所有的回调都执行完才能继续执行下一个。 Promise?你是认真的吗,这种场景下显然不适合使用Promise来操作,仍然会产生类似回调地狱的问题。 Async/Await?emmmm……Await自己吗? 解决思路 其实我们的思路和Async/Await的思...
2019-12-31 16:31:39
856
原创 _proto_和 prototype的关系
前言: 1、两者完全是两个东西!! 2、所有都有_proto_属性,初始值该对象的构造函数的原型对象(ptoto); 3、函数上和内置对象上才有prototype属性,初始值是本身的_ptoto_。 _proto_ 这其实只是一个别名,proto_的真实本质是一个internal slot(内置插槽)[[Prototype]],注意这里的[[Prototype]]与我们标题里的prototyp...
2019-08-22 13:58:12
237
原创 CORS中MIME协议传输文件问题
最近在写一个系统的时候需要导出后台的统计数据到一个csv文件中。按照正常的公司框架,使用axios发送一个post请求给后台之后就应该会返回数据并触发下载了。但是这次成功的返回了数据却没有触发浏览器的文件下载。后来发现是一个隐藏了跨域问题外加一个mime协议格式的问题,下面来仔细分析一下。 CORS CORS也就是跨域资源共享,这里就不详细讲解,想进一步学习的可以自己去看一下。 在这里我们主要要清...
2019-08-20 16:59:14
301
原创 JavaScript中点操作符与[]操作符的区别与原理解释
前言 我们都知道,取js对象的时候可以用.也可以用[],他们两者是有区别的: 1.中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。 2.中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。 3.中括号运算符可以用纯数字为属性名。点运算符不能。 4.中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能。 但是如果我们只知道这个实在是太无聊,下面我们来看看为...
2019-08-06 14:06:56
1011
原创 jQuery部分源码注释——Sizzle(后续更新)
var Sizzle = /*! * Sizzle CSS Selector Engine v2.3.4 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * * Da...
2019-07-29 19:42:22
746
原创 jQuery源码中的一些细节分析(二)——透过兼容性代码看getElementsBy*在各个浏览器下的表现。
jQuery在自己内含的Sizzle引擎里大量使用了原生的getElementsBy*系列的函数来实现选择器,因为原生函数的效果足够好所以不需要额外的封装。但是原生的函数在不同的浏览器中表现又大不相同,也就产生了很多兼容性的问题,jQuery为了能够兼容这些行为怪异的浏览器(IE:你们都看我干吗)做出了很多努力,下面我们通过这些代码来看一看getElementsBy*在各个浏览器中的表现情况,以及...
2019-07-29 15:55:07
200
原创 jQuery源码中的一些细节分析(一)
!!的使用 var length = !!obj && "length" in obj && obj.length 这是jQuery里的isArrayLike函数里的一句话,用来返回该函数的参数obj是否有length属性,如果有length属性的值是多少。需要注意的是在这个一连串的判断中第一个判断条件用了!!obj而不是obj。 其实两者的作用类似,都是为了排除...
2019-07-24 17:12:55
181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人