Reflect

发布在 ES6

前言

其实说实在的,在没重学 ES6 之前,我对 Reflect 这个对象完全是空白的,一是在实际工作中用不到,二是面试的时候也没人问起。这也是自己的一个问题,在驱动式学习,而没有去自主学习。

那今天就讲讲 Reflect 对象。

阅读全文

Proxy和defineProperty

发布在 ES6

前言

虽然我的主技术栈是 React 的,但是每当面试的时候,面试官几乎都会问你说一下 React 和 Vue 的区别,在说道双向数据绑定的时候,面试官会下意识的问一句,你说一下 Vue 的双向数据绑定的原理,这个时候 Object.defineProperty 就出场了,但是在 Vue3.0 中,Proxy 取代了 Object.defineProperty,成为双向绑定的底层原理,这个时候 Proxy 就显得尤为重要。

本篇文章先以 Object.defineProperty 作为引入,之后讲解 Proxy,最后比较两者之间的优劣。

阅读全文

export

发布在 ES6

在原始的 JS 时代,是没有模块化的概念的,随着前端项目的越来越大,并且前端的地位越来越主要,急需模块化的概念引入进来。在 ES6 之前,社区制定了一些模块化的方案,如:CommonJS 和 AMD。ES6 之后这两个正在慢慢的被 import 和 export 所取代。

这让我想起了之前面试的时候一个面试官问我 ES6 为什么要引入 import 和 export,我的回答是为了模块化的加载,避免全局污染,然后他问了一个让我至今难忘的问题,为什么是 import 和 export 这两个单词????😓😓😓 当时的我顿时语塞,只能弱弱的回答一句,JS 规范的….

阅读全文

Symbol

发布在 ES6

前言

这篇文章说实话,在写完的那一刻真的对 Symbol 这个类型肃然起敬,平时真的不用这个数据类型,也没有想过会用它,之前还是停留在只是知道这个单词的阶段,在写完后才发觉它的强大。

阅读全文

Set和Map

发布在 ES6

ES6 新增了两个数据结构,一个是 set,另外一个是 map。

1、set

在《你不知道的 JavaScript(下卷)》中是这么定义的:set 是一个值的集合,其中的值唯一(重复会被忽略)。
它类似于数组,但是每个成员的值是唯一的。

阅读全文

Async和Await

发布在 ES6

async 是 ES7 提出的新特性,说白了就是 Generator 的语法糖。
既然是语法糖,那我们首先说一下它的改进之处。

1、async 对 Generator 的改进

阅读全文

Generator

发布在 ES6

Generator 是 ES6 提出的一种异步编程的解决办法,它与传统的函数完全不同,本章从基础概念和基本用法进行讲解和解析。在此之前也是对 Generator 函数云里雾里,所以通过此次学习,希望能对 Generator 有更深的理解和认识。

1.概念

Generator 中文的意思是’生成器’,阮一峰:ECMAScript 6 入门中对 Generator 解释是:
Generator 函数有多种理解角度。语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。

阅读全文

Promise

发布在 ES6

Promise 让人又恨又爱的存在,恨是因为面试的时候会围绕它出很多题,又绕又头疼,爱是真香,谁都逃不过真香定律。

1、概念

Promise 是异步编程的一个新的解决方案,阮一峰:ECMAScript 6 入门中给出对 promise 的含义是:所谓 Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。
Promise 是一个构造函数,它有两个特点:

阅读全文

var、let和const

发布在 ES6

1、var

在没出现 let 和 const 之前,我们定义变量只能用 var。但是用 var 定义变量通常有很多的问题,就是我们常说的变量提升,例如:

阅读全文
作者的图片

TomatoMan

author.bio


author.job