JavaScript
文章平均质量分 71
hans774882968
这个作者很懒,什么都没留下…
展开
-
【前端甜点】某视频网站的m4s视频/音频下载方案(20240420)
从20年到上个月为止,it just works well。但20240420开始,不知道是Chrome浏览器升级还是什么原因,二进制数据包装的Blob对象转化为a标签后域名变成了,无法方便地下载m4s了,于是这个脚本不能用了。这个原因我一直都没找到。好在我很快又摸索出了一个稍微麻烦点的路子:先在浏览器控制台运行JS代码,获取base64字符串,然后在本地用python把它转为mp3。在上述古老的脚本里,我将XHR返回的类型指定为Blob了,因此我需要将其转为base64字符串。最后我找到的API是。原创 2024-04-20 23:46:39 · 1173 阅读 · 2 评论 -
从0搭建一个自制cli脚手架(附常见问题解决方案)
项目地址:https://github.com/Hans774882968/hans-cli环境:Windows10相信很多人都是通过vue-cli第一次认识前端脚手架。我们通过npm install -g vue-cli命令全局安装脚手架后,再执行vue create project-name就能初始化一个vue项目。那么我们能不能写一个自己的脚手架,方便地初始化一个项目?答案不仅是肯定的,难度还不大!用到的工具commander用来编写指令和处理命令行。例:const program = r原创 2022-01-29 00:15:52 · 1788 阅读 · 2 评论 -
字节一面的一道好题:如何实现异步链式调用
字节一面出了一道好题:实现一个异步链式调用的效果:new CodeMan().eat("lunch").sleep(10).eat("dinner")。sleep(10)表示要异步地等待10s以后执行后面的内容。面试官只给了一个关键字的提示:队列。我是那个百思不得其解啊!面试后,我想了想,调用阶段(是同步任务,会先执行)先用一个队列把任务收集起来(这里把eat和sleep统称为”任务“),然后用”宏任务在同步任务执行完以后才执行“这个特性,来搞一个”假递归“,即当前任务执行完后再把下一个任务扔进宏任务队原创 2021-10-21 20:20:22 · 370 阅读 · 0 评论