You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
functionuniq(arry){varresult=[];for(vari=0;i<arry.length;i++){if(result.indexOf(arry[i])===-1){//如 result 中没有 arry[i],则添加到数组中result.push(arry[i])}}returnresult;}
法3: 利用 includes
functionuniq(arry){varresult=[];for(vari=0;i<arry.length;i++){if(!result.includes(arry[i])){//如 result 中没有 arry[i],则添加到数组中result.push(arry[i])}}returnresult;}
关于【Step-By-Step】
20. 实现 Promise.race 方法
在实现
Promise.race
方法之前,我们首先要知道Promise.race
的功能和特点,因为在清楚了Promise.race
功能和特点的情况下,我们才能进一步去写实现。Promise.race 功能
Promise.race(iterable)
返回一个 promise,一旦iterable
中的一个promise
状态是fulfilled
/rejected
,那么Promise.race
返回的promise
状态是fulfilled
/rejected
.只要p1、p2、p3之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的
Promise
实例的返回值,就传递给 p 的回调函数。Promise.race 的特点
Promise.race
返回的promise
永远是pending
态promise
,Promise.race
会返回一个处理中(pending)的promise
iterable
包含一个或多个非promise
值或已经解决的promise,则Promise.race
将解析为iterable
中找到的第一个值。Promise.race 的实现
21. JSONP原理及简单实现
尽管浏览器有同源策略,但是
<script>
标签的src
属性不会被同源策略所约束,可以获取任意服务器上的脚本并执行。jsonp
通过插入script
标签的方式来实现跨域,参数只能通过url
传入,仅能支持get
请求。实现原理:
jsonp源码实现
使用:
服务端代码(node):
22. 实现一个数组去重的方法
法1: 利用ES6新增数据类型
Set
Set
类似于数组,但是成员的值都是唯一的,没有重复的值。法2: 利用
indexOf
法3: 利用
includes
法4:利用
reduce
法5:利用
Map
23. 清除浮动的方法有哪些?
1. 利用
clear
属性在
<div class='outer'>
内创建一个空元素,对其设置clear: both;
的样式。2. 利用
clear
属性 + 伪元素IE8以上和非IE浏览器才支持:after,如果想要支持IE6、7,需要给
outer
元素,设置样式zoom: 1
;3. 利用 BFC 布局规则
根据 BFC 的规则,计算 BFC 的高度时,浮动元素也参与计算。因此清除浮动,只需要触发一个BFC即可。
如:
注意使用
display: inline-block
会产生间隙。24. 编写一个通用的柯里化函数 currying
在开始之前,我们首先需要搞清楚函数柯里化的概念。
函数柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
参考文章:
[1] 珠峰架构课(墙裂推荐)
[2] CSS-清除浮动
[3] 详解JS函数柯里化
[4] JavaScript数组去重
谢谢各位小伙伴愿意花费宝贵的时间阅读本文,如果本文给了您一点帮助或者是启发,请不要吝啬你的赞和Star,您的肯定是我前进的最大动力。 https://github.com/YvetteLau/Blog
The text was updated successfully, but these errors were encountered: