ES6基础篇
文章平均质量分 70
crazy的蓝色梦想
小柒 爱前端
展开
-
几道题 ,看你是否真的懂 async/await
await 原理是什么?async 函数的实现,就是将 Generator 函数和自动执行器,包装在一个函数里。function spawn(genF) {return new Promise(function(resolve, reject) {var gen = genF();function step(nextF) {try {var next = nextF();} cat...原创 2020-03-16 21:33:07 · 410 阅读 · 0 评论 -
ES10的新特性 —— bigint
前面的话虽然es10现在还是草案,但Chrome大多数功能都已经实现。下面介绍新特性:bigint基本数据类型,es6中的基本数据类型包括:null,undefined,number,string,boolean,symbol 6种,现在增添一个新特性,可算是凑齐7兄弟了。Bigint 任意进度整数在javaScript中,number可以准确表达的最大数字是2^53没有比这更大的数字,N...原创 2019-11-26 16:40:15 · 2138 阅读 · 0 评论 -
Proxy代理
前面的话Proxy 用于修改某些操作的默认行为,等同于在语言层面上做出修改,所以是一种“元编程”,即对编程语言进行编程。Proxy 可以理解成在目标对象前架设一个“拦截”层,外界对该对象的访问都必须先通过这层拦截,因此提供一种机制可以对外界的访问进行过滤和改写。创建简单代理ES6 原生提供Proxy构造函数,使用new Proxy() 生成一个Proxy实例。Proxy构造函数需传递两个参数...原创 2019-08-20 16:50:34 · 517 阅读 · 0 评论 -
Set 、WeakSet、Map、WeakMap用法
SetES6提供了新的数据结构 —— Set 。它类似于数组,但是成员的值都是唯一的,没有重复。Set 本身是一个构造函数,用来生成Set数据结构[Set结构的实例属性]Set.Prototype.constructor: 构造函数,默认就是Set函数Set.prototypr.size: 返回Set实例的成员总数Set实例的方法分为两大类: 操作方法(用于操作数据)和遍历方法(用于......原创 2019-08-06 10:46:51 · 1644 阅读 · 5 评论 -
async 函数
前面的话ES2017标准引入了async函数,使得异步操作变得更加方便。这篇文章将介绍async函数初识什么是async函数?简单来说,它就是Generator函数的语法糖。使用Generator函数,依次读取两个文件:var fs = require('fs');var readFile = function (fileName) { return new Promise(f...原创 2019-08-01 17:12:01 · 752 阅读 · 0 评论 -
Generator生成器 ——对象的throw()方法
前面的话我们平时一般使用的throw指令抛出错误,在Generator函数中也有throw()用来抛出错误。throw()Generator函数返回的遍历器对象都有一个throw方法,可以在函数体外抛出错误,然后在Generator函数体内捕获。{var g = function* () { try{ yield; }catch(e){ c...原创 2019-07-22 19:58:46 · 789 阅读 · 0 评论 -
Generator生成器 —— next()方法
前面的话Generator函数是ES6提供的一种异步编程的解决方案,语法行为与传统的函数完全不同。基本概念从语法上看,首先可以把它理解为一个状态机,封装了多个内部状态;其次执行Generator函数会返回一个遍历器对象,也就是说Generator函数还是一个遍历器对象的生成函数。从形式上看,Generator函数是一个普通函数,但有两个特征:函数名前面有一个星号;函数体内部使用yield语...原创 2019-07-22 19:29:30 · 3257 阅读 · 0 评论 -
Class 的继承
前面的话es5之前的继承大多以原型链继承为主,但原型链继承的缺点很大。es6引入的类的继承方便的了不少。es5模拟继承es5 实现继承需要多个步骤:function Rectangle(length, width) { this.length = length; this.width = width;}Rectangle.prototype.getArea = func...原创 2019-08-03 16:04:30 · 222 阅读 · 0 评论 -
Class 基本语法
前面的话es6之前js都不支持类和类的继承,直到es6引入了类的特性。es5的语法js语言的传统方法通过构造函数定义并生成新对象。function Person (name) { this.name = name;}Person.prototype.sayName = function() { console.log(this.name);}let person =...原创 2019-08-02 19:56:32 · 553 阅读 · 1 评论 -
Generator生成器 —— yield与yield*表达式
前面的话前面介绍过Generator函数是一个状态机,里面封装了多个内部状态,并且只有调用对象的next()方法才能移到下一个状态。而每一个状态都是由yield语句开头的(或者return语句开头)。即只有调用next方法且内部指针指向该语句时,才会执行yield语句后面的表达式。所以yield语句表示一个状态,而yield*语句作用又不一样了,它功能相当于for…of的功能。yield表达式...原创 2019-07-24 10:40:56 · 1085 阅读 · 0 评论 -
ES6 Promise与异步编程
前面的话JS有很多强大的功能,其中一个是它可以轻松地搞定异步编程。 传统的异步编程是事件,后Node.js的回调函数代替事件,使得异步编程在js领域更加流行。而随着更多程序使用异步编程,事件与回调函数不能满足开发者想做的事情。es6中新增的Promise是一种异步编程的解决方案。引入[js运行机制]js引擎是基于单线程事件循环的概念构建的,同一时间,只能执行一个代码块,即将执行的代码,将被...原创 2019-07-11 21:47:26 · 213 阅读 · 2 评论 -
Unicode扩展
前面的话在ES6之前,js的字符串以16位字符编码为基础,16位即两个字节表示一个字符。采用\uxxxx形式表示一个字符,其中xxxx 表示字符的Unicode码点。本文将介绍ES6 关于Unicode的扩展。●大括号表示法ES6之前的写法: { // a console.log('\u0061'); }但这种表示方法只限于码点在\u0000 ~ \u...原创 2019-05-05 09:03:23 · 1298 阅读 · 0 评论 -
let与const命令
前面的话ES5中的声明变量的方法:var 与 function命令存在很大的弊端。ES6新增let命令与const命令纠正了这些弊端。ES6一共有6种声明变量的方法。除了前的4种,还有import 与 class,后面将提到。let命令1:基本用法ES6 新增let命令用于声明变量。用法与var类似,但是所声明的变量只在let命令所在的代码块有效只在代码块内有效: { ...原创 2019-04-28 10:57:02 · 157 阅读 · 0 评论