有了前文的基础,我们深入剖析一下 Promise 的原理。 Promise 由于 JS 的单线程和任务队列,造成了很多函数嵌套,当这种嵌套激增,就会造成所谓的 回调地狱,这是我们深恶痛绝的。 创建一个 Promise 基于几方面原因,JS …
真丶深入理解JavaScript异步编程(一):异步
异步的由来与实现 JS 在设计之初就是单线程的,所以本质上并不存在异步编程。在经过不断的进化和改良之后,现在所谓的异步编程也只是利用任务队列来改变事件的触发顺序,从而在效果上达到异步。 一个生活中的例子 好比我们要吃饭,那就要先做饭,假设焖…
真丶深入理解 JavaScript 原型和原型链(四):ES6中的class
今天最后总结一下 class 与 原型的关系。 ES6 的语法糖 – 类(class) ES6 有了更加清晰明确的面向对象的关键字,但其实它们只不过是经过修饰的语法糖。 类的基础概念和语法 我们之前在原型链中创建一个对象,需要使…
真丶深入理解 JavaScript 原型和原型链(三):继承
A今天总结一下JS中的继承。前面已经总结了原型和原型链,JS中的继承基于原型链,那么有必要顺着前文继续。 JS 中的继承 首先明确,JS 中的继承是原型继承。有了上面的前置知识,我们可以深入理解 JS 中的原型继承了。 继承不是改变原型的事…
真丶深入理解 JavaScript 原型和原型链(二):原型和原型链
上一篇文章已经总结了关于原型的两个属性,那么接下来所有原型和原型链,乃至后面的继承,都与这两个属性有关系。 原型和原型链 理解继承,首先要搞懂什么是原型和原型链。 理解原型和原型链 上面已经介绍了关于原型的两个属性: __proto__ p…
真丶深入理解 JavaScript 原型和原型链(一):两个属性
网上有很多相关的文章、视频等资料,但很多都是片面的,不完全的。我也为了自身加深理解,所以对其进行一下简单的总结。 本来想写一篇文章进行总结,发现越写越多,还是分成几篇,分别总结吧。 两个属性 可以说 JavaScript 的很多特性都是基于…
js 中优雅的捕获 await 的异常
看了 await-to-js,不由得佩服大神的思路。看起来很简单,但是有时候很简单的方案就可以解决很看似很复杂的问题。 前置知识: async await Promise 百度一下,基本全是官方文档照抄的内容,我就不超了,有不明白的同学自己…
js 修改 stylus 变量
使用变量 一些基本操作: 使用 $ 作为变量名前缀 赋值号(=)赋值 使用 @ 可以直接引用当前类下的属性名 width 10px height @width 可以直接在类中使用变量名(好像是废话) 修改变量 如果想动态修改,需要用到 js…
@typescript-eslint/no-unused-vars 警告问题
使用 TypeScript 的时候,总是报这个问题,名字很直接,就是有未使用的变量,那么如何消除呢? 很简单: 1、最标准的方式当然是删掉这些变量。 2、配置一下 eslinetrc.js 环境即可。 module.exports = { …
js 升级 ts 之路,含 vue 升级攻略
最近在升级项目,用到了TypeScript,简单总结一下JS转TS,尤其是在vue中的使用方式。 基础语法 对于TS的基础语法,这里就不多介绍了,看官网即可,毕竟巨硬的文档可以秒杀一众系列丛书。 放个链接: TypeScript文档 Typ…