面试-事件循环 eventLoop 记录
了解事件循环便于你更进一步理解JavaScript这门语言
面试-实现 lodash 的 _get 功能
面试遇到的题目,记录一哈,简易实现 lodash 方法 原题目,其实和实现 _get 方法没啥区别,实现思路不同而已 题目: 现有 Json 数据,格式如下: json = { "a": [ { "b": "c" } , ... ] , ... }; 请实现一个方法:get(json, "a[0].b"),使其返回值为 c。 要求:自己实现遍历逻辑,不允许使用正则表达式、不允许使用 eval()等类似 方法。 测试用例: json = { "a": [ { "b": "c" }, "d" ], "x": 1} get(json, "a[0].b") == "c" get(json, "a[1]") == "d" get(json, "x") == 1 原题解就不献丑啦~ const str2path = (path) => { const reg = /[^.[\]]/g let result = [] // const rePropName =...
梯子 —— 网络加速器 xxnet 配合谷歌云,流畅访问 YouTube、Facebook等墙外世界
自建梯子唯一的问题还是服务器的问题,一兆不够用五兆买不起。。。便宜的搬瓦工要是脸黑也能被墙,所以找个好一点的梯子难啊~ 使用 xx-net免费的梯子要么限速要么限量,最近比较火的 v2ray。。。回归正主,先下载 xx-net,按 github 内说明打开即可 注册谷歌云获取 appidxx-net 虽然也是免费的但是没有谷歌云的 appid 也只有 100M 的日流量,获取 appid 流程:https://github.com/XX-net/XX-Net/wiki/how-to-create-my-appids获取 id 可能会让你绑定 visa 卡,有是最好 没有的话可以不管这个提示但是4.30之后你不绑定将无法使用 记住部署 appid 需要下载 3.14.2 版本,看本文发布时间和实际使用过程再去判断这句话。。 检测 ip部署完自己的 appid 后将会获得每日1G的流量,速度起飞。首次开启 xx-net 需要让程序扫描 ip,所以需要等待一会直到扫描到 ip
github 油猴脚本,国内镜像加速站、快速克隆配置 - github 克隆加速
GitHub 的 clone 加速之前有去找过其他方法,什么修改 host 啥的,都以 gg 告终。最近看到油猴有出脚本那今天就碰一碰。 下载油猴的谷歌扩展插件官网地址谷歌应用商店地址 无法访问谷歌的可以使用 Ghelper 插件 下载油猴脚本脚本官方地址 如访问速度慢的话,建议使用移动网络,或者复制下方代码即可 展开本地脚本,复制添加即可 // ==UserScript== // @icon https://github.githubassets.com/favicon.ico // @name Github 镜像访问,加速下载 // @namespace https://github.com/jadezi/github-accelerator/ // @version 1.0.4 // @description GitHub 镜像,github 加速 // @author jadezi // @license ...
serverless - 无服务 云函数的入门记录
最近写文章需要调用一些接口,而一些借口为了防止被调用做了跨域处理。因为项目是部署在 GitHub 上,想调用一些接口又不能说去买一个服务器吧。。。所以就想到了各大云厂商都在推的云函数,免费,速度又快 真香🤣在试用了腾讯和阿里之后选择了后者,因为腾讯还是需要后端 support 创建函数阿里云提供 Fun、控制台或 vscode 创建函数,刚入门就选择简单的控制台创建函数 如果需要外网访问的话可以选择 http 函数,触发器也需要 http(http 触发器只能在创建函数的时候指定,后期无法修改!)。 函数编写支持在线编辑和代码上传,语言随你选择。我这里使用了 node10 做的 api,如果需要第三方依赖的话需要自己压缩上传或者使用阿里的Fun来部署,每次限制 50MB。 建议使用 Fun 来部署和测试云函数,测试有的功能需要有的 docker,详细的去看官方文档吧。。
js-bind 的多次绑定
前言最近遇到个多次bind绑定的问题,看下面代码你预测下会输出什么 var a=function(){ console.log("a", this) if(typeof this === "function"){ this() } } var b=function(){ console.log("b") if(typeof this === "function"){ this() } } var c=function(){ console.log("c") if(typeof this === "function"){ this() } } var d=a.bind(b) var e=d.bind(c) d() e() 点击查看输出 // abab 我们可以先看看 a在bind的时候发生了什么 d = function() { ...
js-最简实现 promise 源码,异步链式调用的理解
手写 Promise 也是面试的一个特色项目,本篇将用简洁的代码带你了解 Promise 的异步链式调用。 非标准 A+ 规范,想要深入的可以去看 A+ 规范实现的 Promise Promise 代码// promise 运行则执行回调函数, // resolve 函数被执行的时候调用当前实例下挂载的 then 函数。 // 参数1:回调函数 function Promise2(executor) { const self = this; self.onResolvedCallback = []; // 定义 resolve 函数,接受参数 value // resolve 的作用为执行当前实例下的所有 then 函数 function resolve(value) { // A+ 规范 self.value = value; // 此时的 callback 为执行 then 的时候传入的回调 self.onResolvedCallback.forEach(callback =>...
bilibili-在线或本地哔哩哔哩bv号转av号提取互转工具,附官方API和本地JS代码
bilibili,在线哔哩哔哩一键转换bv号至av号工具,哔哩哔哩提取教程
页面结构语义化
前端标签语义化,面试,html,html5
js-面试,手写代码系列:bind,call,apply,new
JavaScript,js手写代码系列