JS中的事件循环和任务队列

2020-03-06
阅读 5 分钟
3.8k
JS是单线程的并发语言,这就意味着,在一个时间段内,它只能处理一项任务或执行一段代码。它有一个单一的调用栈(Single Call Stack),和堆(Heap),队列(Queue)组成的JS并发模型(Javascript Concurrentcy Model).[可视化表示]

使用Jest测试Typescript

2019-08-10
阅读 3 分钟
8.9k
这个博客的粉丝不需要深信良好维护的测试套件(针对karma+jasmine?)的价值。幸运的是Jest使得测试React应用变得非常轻松,即使使用了Typescript,也是如此。让我们深入研究开发纯净的、测试安全的代码所涉及的各个层面。

ES6之Proxy & Reflection API

2019-07-28
阅读 7 分钟
1.6k
extends的出现,使用内建对象的继承得以实现。Proxy可以拦截JS引擎内部目标的底层对象操作,这些底层操作被拦截后会触发响应特定操作的陷阱函数(traps),对于别人封装好的对象或内建对象,都可以自定义操作。而反射(Reflect)API是以Reflect对象的形式出现的。API中的默认特征与相同的底层操作是一致的,而通过代理可...

ES6 class extends

2019-07-20
阅读 7 分钟
3k
class 是对原型继承的一种语法糖的包装。那相对于原型继承,它有什么优点呢?我们来先看一个典型的基于原型链继承的例子。部分内容来自“Javascript高级程序设计”

ES6 class characteristics

2019-07-20
阅读 4 分钟
1.4k
class (类)作为对象的模板被引入,可以通过 class 关键字定义类。类简要说明类的本质是function,是基本原型继承的语法糖。所以,JS中继承的模型是不会被改变的。类既然是函数,那与函数有何不同呢?我们为什么要使用类呢?有时间,先看一下MDN od

ES6 之 Iterator&Generator

2019-07-14
阅读 13 分钟
856
不推荐Iterator方法。 Iterator 函数是一个 SpiderMonkey 专有特性,并且会在某一时刻被删除。有一点,需要清楚的,就是“迭代协议”。迭代协议MDN说明

well-known Symbol ES6 暴露内部操作

2019-07-13
阅读 2 分钟
3.1k
ES5的一个中心主旨是将JavaScript中的一些“神奇”的部分暴露出来,并详尽定义了这些开发者们在当时模拟不了的功能。ES6延续了这个传统,新标准中主要通过在原型链上定义与Symbol相关的属性来暴露更多的语言内部逻辑。MDN 关于well-known Symbol描述

ES6 Symbol ,对象匿名(anonymous)属性实现

2019-07-13
阅读 3 分钟
2k
Symbol是ES6引入的新类型,所以在ES5的基础上,JS就有了字符串(string)、数字型(number)、布尔(bool)、null、undefined和Symbol共六种基本类型(bigint ES2016 添加)。