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