女王控的博客

JS

32 篇文章

Promise 实现原理

简化版 代码 这个 Promise 的实现不考虑任何异常情况,只考虑代码最简短,从而便于读者理解核心的异步链式调用原理。 核心案例 本文将围绕这个最核心的案例来讲,这段代码的表现如下: 500ms 后输出 1 500ms 后输出 2 实现 构造函数 首先来实现 Promise 构造函数 好,写到这里先回过头来看案例 分开来看,fn 就是用户传的函数,这个函数内部调用了 resolve 函数后,就会把 promise 实例上的 cbs 全部执行一遍。 到此为止我们还不知道 cbs… »

javascript ES6 笔记

let 和 const 块级作用域的出现 通过 var 声明的变量存在变量提升的特性: 初学者可能会觉得只有 condition 为 true 的时候,才会创建 value,如果 condition 为 false,结果应该是报错,然而因为变量提升的原因,代码相当于: 如果 condition 为 false,结果会是 undefined。 除此之外,在 for 循环中: 即便循环已经结束了,我们依然可以访问 i 的值。 为了加强对变量生命周期的控制,ECMAScript… »

javascript专题笔记

防抖 前言 在前端开发中会遇到一些频繁的事件触发,比如: window 的 resize、scroll mousedown、mousemove keyup、keydown 为此,我们举个示例代码来了解事件如何频繁的触发: 我们写个 index.html 文件: debounce.js 文件的代码如下: 我们来看看效果: 从左边滑到右边就触发了 165 次 getUserAction 函数! 因为这个例子很简单,所以浏览器完全反应的过来,可是如果是复杂的回调函数或是 ajax 请求呢?假设… »

javascript深入笔记

从原型到原型链 构造函数创建对象 我们先使用构造函数创建一个对象: 在这个例子中,Person 就是一个构造函数,我们使用 new 创建了一个实例对象 person。 很简单吧,接下来进入正题: prototype 每个函数都有一个 prototype 属性,就是我们经常在各种例子中看到的那个 prototype ,比如: 那这个函数的 prototype 属性到底指向的是什么呢?是这个函数的原型吗? 其实,函数的 prototype… »

使用JS把相对地址变成绝对地址

new URL()方法 有时候为了方便的处理 URL 地址,会使用 URL()方法。例如: 除了上面的 URL 地址拆家,URL()方法还有一个隐藏的功能,就是可以实现相对地址变成绝对地址的效果。 语法 看到后面的可选参数 没有,这个就可以实现相对路径变成绝对路径。 方法封装 实际开发,base 往往就是当前页面的域名地址,因此,我们可以简单封装一个方法,简化我们平时的调用 总结 URL… »

0%