- 博客(67)
- 收藏
- 关注
原创 面试题:使用promise实现并发请求限制(最优解)
问题:有 8 个图片资源的 url,已经存储在数组 urls 中,而且已经有一个函数 function loadImg,输入一个 url 链接,返回一个 Promise,该 Promise 在图片下载完成的时候 resolve,下载失败则 reject。但是我们要求,任意时刻,同时下载的链接数量不可以超过 3 个。请写一段代码实现这个需求,要求尽可能快速地将所有图片下载完成。之前看过很多答案都不够好,索性自己动手实现了一下var urls = [ "https://www.kkkk1000.c.
2021-10-12 15:59:06
2783
原创 理解npm包管理机制
推荐文章https://segmentfault.com/q/1010000004114972?_ea=496109https://blog.csdn.net/azl397985856/article/details/103982369/
2020-10-17 14:12:49
465
原创 git clone --mirror -q git://github.com/adobe-webplatform/eve.git
解决办法:git全局添加一个属性git config --global url."https://".insteadOf git://然后,重新npm install
2020-07-28 10:47:37
4128
2
原创 重写audio元素样式
audio { display: block; width: 200px; height: 40px; outline: none; filter: invert(180);}/* 隐藏下载按钮及设置audio样式 */audio::-webkit-media-controls-enclosure { background: rgba(255, 93, 0, .8); border-radius: 4px; overflow: hidden; border: 1p
2020-07-06 16:50:41
737
原创 ESLint常用规范
ESLint 是在 ECMAScript/JavaScript 代码中识别和报告模式匹配的工具,它的目标是保证代码的一致性和避免错误。
2020-06-19 20:41:43
531
原创 2020: Vue和React生命周期
Vue 生命周期vue2有9个生命周期钩子vue3也有9个生命周期钩子2.x和3.x钩子的对应关系:beforeCreate -> 使用 setup()created -> 使用 setup()beforeMount -> onBeforeMountmounted -> onMountedbeforeUpdate -> onBeforeUpdateupdated -> onUpdatedbeforeDestroy -> onBeforeUnm
2020-06-03 11:00:57
665
原创 Pre-commit:如何使用 husky、lint-staged和prettier优化你的项目
在软件开发过程中,代码风格检查(Code Linting)是保障代码规范和一致性的有效手段。过去,Lint 的工作一般在 Code Review 或者 CI 的时候进行,但这样会导致问题的反馈链,浪费不必要的时间。因此,我们需要利用 Git 的 Pre Commit 钩子,将 Lint 过程放到开发者提交代码之前。
2020-05-25 14:42:44
3928
原创 什么是高阶函数和纯函数?
高阶函数是一个接收函数作为参数或将函数作为输出返回的函数。纯函数的三个条件:给定输入,无论什么时候调用,无论调用多少次,输出总是确定无疑的;在函数内部不可以改变函数外部对象的状态;纯函数内部的状态在纯函数执行完毕后就被销毁了;...
2020-04-07 09:59:40
514
原创 require和import的区别?exports和module.exports的区别?export和export default的区别?
CommonJs模块是运行时加载,ES6模块是编译时输出接口。require是commonjs规范中导入模块的语法;import是ES6规范中导入模块的语法;require支持动态导入;import不支持动态导入,但是在babel下支持;require是同步导入;import是异步导入;require导入的是值的拷贝,导出值变化不会影响导入值;import导入的是值的引用,导入值会...
2020-04-03 15:11:23
126
原创 nodejs中的EventLoop
先执行所有类型为 timers 的 MacroTask,然后执行所有的 MicroTask(注意 NextTick 要优先哦);进入 poll 阶段,执行几乎所有 MacroTask,然后执行所有的 MicroTask;再执行所有类型为 check 的 MacroTask,然后执行所有的 MicroTask;再执行所有类型为 close callbacks 的 MacroTask,然后执行所有的 MicroTask;至此,完成一个 Tick,回到 timers 阶段;……如此反复,无穷无尽……
2020-03-18 21:25:32
302
原创 gulp和webpack的区别
基本区别:gulp可以进行js,htm,css,img的压缩打包,是自动化构建工具,可以将多个js文件或是css压缩成一个文件,并且可以压缩为一行,以此来减少文件体积,加快请求速度和减少请求次数;并且gulp有task自定义处理事务,从而构建整个流程,它是基于流的自动化构建工具。webpack是前端构建工具,实现了模块化开发和文件处理。它的思想就是“万物皆为模块”,它能够将各个模块进行按需加载...
2020-03-07 21:19:34
1901
原创 深入了解Object.freeze()和Object.seal()
本篇文章主要深入介绍ES6中Object.freeze()和Object.seal()的新特性,方便大家理解。
2019-12-24 10:56:39
2508
原创 如何写出高效的 Vue 代码
- 为什么我们写的代码总是被吐槽?- 为什么我们写的代码总是那么格格不入?- 为什么我们写的代码 bug 总是比别人多?本篇文章内容将涉及如下:- 养成良好的代码书写规范- 如何写出有逼格的 Vue 组件- 理解 Vue 双向绑定原理- 如何保证高效的协同开发
2019-12-14 20:47:45
907
原创 1024快乐!浅谈scrollTop需要踩的坑
对于没有实战过的同学来说,scrollTop使用起来会有一些小坑,今天借着1024节帮大家填一下坑。
2019-10-24 18:49:56
619
原创 如何理解防抖debounce和节流throttle
本人通过阅读网络上防抖和节流多篇相关的文章,并借鉴相关案例进行说明。防抖防抖就像人眨眼睛一样,不可能不停的眨,每隔一定时间眨一下,防止眼睛干涩,如果不停眨眼,别人以为你眼睛有毛病了。再举一个例子,比如两个人对话,A不停的balabala(持续触发),如果A说话的时候有停顿,但是停顿的时间不够长,B就认为A还没说完,当A停顿时间超过足够长(一定间隔)就认为A说完了,然后B开始说(响应)。节流...
2019-10-15 13:16:45
507
原创 调整浏览器滚动条样式
我们知道浏览器自带滚动条很丑,有时影响整个页面到美观,尤其在页面内嵌一个滚动列表,显得奇丑无比,下面我们根据如下代码调节滚动条样式...
2019-08-13 13:31:01
774
2
原创 一键安装全局npm模块
当我们使用nvm管理node,切换node版本时,安装在全局的npm包无法共用之前node版本中的npm包,需要重新下载所有的全局模块...
2019-04-25 13:59:22
1541
原创 nginx开启ssl证书
修改listen为443如果你又开启防火墙,还需将443端口放开。在server中添加 ssl on; ssl_session_timeout 5m; ssl_certificate /cert/214050429370638.pem; ssl_certificate_key /cert/214050429370638...
2018-12-04 16:54:03
362
原创 解决vim中文乱码
执行:cd ~vim .vimrc将如下文本复制保存退出即可。set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936set termencoding=utf-8set encoding=utf-8
2018-11-28 15:34:31
272
原创 wordpress安装后问题汇总
问题一:wordpress写文章界面点击“添加媒体”和“可视化/文本”无反应解决方法:在wp-config.php中追加 define("CONCATENATE_SCRIPTS", false);问题二:wordpress上传媒体时提示http error通过查看nginx错误日志vim /var/log/nginx/error.log得知:open() “/var/lib/ngi...
2018-11-20 15:05:55
483
原创 nginx开启gzip压缩
nginx安装: yum install -y nginx配置文件默认在/etc/nginx/nginx.conf打开nginx.conf添加 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; #gzip_http_version 1.0; gzip_comp_level 2; gzip...
2018-07-26 19:02:01
211
原创 centos下修改mysql默认端口
mysql5.6安装: wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum -y install mysql mysql-server 默认mysql配置文件位于/etc/my.cnf在...
2018-07-26 18:48:08
7628
原创 node版本管理器——nvm
nvm是管理node版本的一个工具,具体介绍不再赘述,请到GitHub(https://github.com/creationix/nvm)查看。安装Linux / Maccurl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash 或wget -qO- https...
2018-07-25 17:16:24
346
转载 浅谈ES6的Promise对象
相信凡是写过javascript的童鞋也一定都写过回调方法(callback),简单说回调方法就是将一个方法func2作为参数传入另一个方法func1中,当func1执行到某一步或者满足某种条件的时候才执行传入的参数func2,看了这篇文章,你就会对Promise有一个深入对了解。
2018-06-08 17:39:14
262
原创 nodejs基础篇(一)
我从2017年开始接触nodejs,到现在用了一年多了,觉得我有必要写点东西出来,记录自己的积累的知识体系,以便更好的掌握nodejs。 nodejs专题不是按照严格的学习历程书写,纯属个人划分的等级。认识AMD、CMD、UMD、CommonJSAMD(Asynchromous Module Definition - 异步模块定义)AMD是RequireJS在推广过...
2018-05-17 15:51:29
425
原创 git删除远程分支
两步删除远程仓库:git branch -r -d origin/dev 删除远程分支 git push origin :dev然后提交到远程 注意: dev分支前的冒号: 不能少
2018-05-10 17:57:49
2346
原创 js如何一次循环删除数组中的多个元素
思路: 数组遍历删除一个元素很容易,通过splice方法删除对应索引的元素即可,但是遍历删除多个元素就复杂了很多,首先不能按索引从小到大的顺序删除,这样可能会导致索引对应的元素发生变化,误删或找不到该索引对应的元素。那如何做到呢?示例 下面的示例即实现了一次循环删除多个元素,又实现了将删除的元素合并到新的数组中let leftData = [1,2,3,4,5] //原...
2018-05-10 14:07:55
11957
原创 Cannot resolve module 'fs'
可能很多人都会遇到这个问题,反正我的话已经遇到两次了,上一次解决的时候没有记录解决办法,这次又遇到了,而且国内搜索引擎是搜不到这个问题的解决办法的,所以写个博客记录一下吧,方便广大的开发人员。凡是在源码中引入fsvar fs = require('fs');可能都会报如下错误:Cannot resolve module 'fs'解决办法:在webpack.base.config.js文件中添加:
2017-09-21 19:11:14
16809
8
原创 Cannot resolve module 'child_process'
ERROR in ./~/xmlhttprequest/lib/XMLHttpRequest.jsModule not found: Error: Cannot resolve module 'child_process'
2017-09-21 18:11:00
5823
原创 echarts和highchart的区别
echarts先大体了解一下echarts的历史: echarts是百度公司前端开发的一个图表库。 支持柱状图、饼状图、k线图、map图、热导向图、折线图 主要采用canvas画图。highcharthighcharts是国外的一家公司开发的图表库,主要采用svg画图。 支持的图表也很多,功能也比较强大。到底是echarts强大还是highchart强大呢?因为凡是都有两面性,各有各的优点和
2016-11-21 23:07:53
18911
原创 centos6.5启动nginx报错
问题:nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)解决方案vim /etc/nginx/conf.d/default.conf 将 listen 80 default_server; listen [::]:80 default_serv
2016-10-30 20:09:03
613
原创 Javascript网页打印大全
目录普通打印(整页打)打印去掉/添加页眉页脚 使用外部控件/方法实现多功能打印 打印背景普通打印(整页打)window.print();打印网页内部分内容(自定义)用css控制@media print.a {display:block}.b {display:hidden}把你不想打印的部分class设为b 首先在网页中添加:<OBJECT id="Web
2016-10-27 23:04:50
2966
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人