
es6
七月是我的生日
人生太苦,但你要甜!
展开
-
ES6 module
1.概述1.1 JavaScript一直没有(module)体系,导致无法将一个大程序拆分成相互依赖的小文件。1.2 ES6之前,指定了一些模块加载方案,CommonJS和AMD,前者用于服务器,后者用于浏览器。1.3 ES6的设计思想是尽量静态化,使得编译时就能确定模块的依赖关系,输入输出关系。1.4CommonJS和AMD都只能在运行时确定这些东西。//CommonJS 模块l...原创 2020-02-21 16:38:00 · 183 阅读 · 0 评论 -
ES6 class的继承
1.class继承简介1.1class可以同过extends关键字来实现继承。 { class Point { } class ColorPoint extends Point{ } }1.2子类必须再constructor方法中调用super方法,否则新建实力会报错。这是因为子类没有自己的this对象,而是继承父类的this对象。{class P...原创 2020-02-20 23:53:28 · 203 阅读 · 0 评论 -
ES6 -- class学习(1)
1.class简介1.1 javascript 语言的传统方法是通过构造函数定义并生成新对象。下面是一个例子 { function Point(x, y){ this.x = x; this.y = y; } Point.prototype.sum = function(){ console.l...原创 2020-02-19 21:41:14 · 176 阅读 · 0 评论 -
ES6 -Async--Await异步编程的曙光
1.asysc函数的含义ES2017引入标准asysc函数,使得异步操作变得更加方便。asysc是什么呢?他就是Generator函数的语法糖。前面介绍过一个Generator函数,依次读取两个文件;{ let fs = require('fs); let readFile = function (fileName){ return new Promis...原创 2020-02-18 19:37:48 · 417 阅读 · 0 评论 -
ES6 Generator函数异步应用(3)
Generator 函数的异步应用1.处理异步的传统方法ES6诞生以前:主要有以下四种方法回调函数事件监听发布/订阅Promise对象2.异步因为js语言的执行环境是单线程的,如果不是用异步,根本无法使用。异步就是将一个任务分为两段,第一段执行完毕再去执行其他任务,完了之后在回头处理第二段。同步就是连续执行,如果程序a没执行玩,b只能等待。3.回调函数JavaScr...原创 2020-02-17 16:26:03 · 262 阅读 · 0 评论 -
ES6 Generator函数(2)
1.Generator 与 协程协程是一种程序运行的方式,可以理解为"写作的线程",或者"协作的函数",协程既可以单线程实现,也可以多线程实现;前者是一种特殊的子例程,后者是一种特殊的线程。2.Generator应用Generator 可以暂停函数执行,返回任意表达式的值。这种特点使得Generator有多种应用场景。3.Generator异步操作的同步化表达Generator函数的...原创 2020-02-16 20:08:34 · 114 阅读 · 0 评论 -
ES6 Generator函数(1)
Generator 函数(1)1.Generator函数的概述 Generator函数是ES6提供的一种一部编程解决方案,语法行为与传统函数完全不同。对于Generator函数有多种理解角度。从语法上看,首先可以将它理解为一个状态机,封装了多个内部状态。执行Generator函数返回一个遍历器对象。 形式上,Generator函数是一个普通函数,但是有两个特征:一是functio...原创 2020-02-15 20:05:56 · 215 阅读 · 0 评论 -
ES6 Reflect
1.reflect 概述Reflect 对象与Proxy对象一样,也是ES6为了操作对象而提供的新的Api。Reflect对象的设计目的有以下几个。1.1将Object对象上的一些明显属于语言内部的方法(类如Object.defineProperty)放到Reflect对象上。现阶段某些方法同时在Object和Recflect对象上部署,未来的新方法将旨在Reflect对象上部署。也就...原创 2020-02-13 20:01:13 · 1305 阅读 · 0 评论 -
ES6 proxy(2)
proxy 概述proxy用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种"元编程",即对编程语言进行编程。proxy可以理解为在目标对象前假设一个“拦截”层,外界对该对象的访问都必须先通过这层拦截,因此提供了一种机制可以对外界的访问进行过滤和改写。Proxy这个词的原意是代理,用在这里表示由他来“代理”某些操作,可以翻译为“代理器”.es6提供proxy构造函数,用于...原创 2020-02-12 19:25:16 · 303 阅读 · 0 评论 -
ES6 proxy即其常见实例解析以及proxy常用例子
1. proxy 概述proxy用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种"元编程",即对编程语言进行编程。proxy可以理解为在目标对象前假设一个“拦截”层,外界对该对象的访问都必须先通过这层拦截,因此提供了一种机制可以对外界的访问进行过滤和改写。Proxy这个词的原意是代理,用在这里表示由他来“代理”某些操作,可以翻译为“代理器”.es6提供proxy构造函数...原创 2020-02-11 22:24:41 · 1060 阅读 · 0 评论 -
ES6 - iterator 和 for..of(详解)
1.iterator(遍历器)的概念javascript 原有的表示“集合”的数据结构主要是数组(Array)和对象(Object),ES6新增了Set和Map数据结构,用户可以组合使用它们,因此就需要一种统一的接口机制来处理所有不同的数据结构。iterator就产生,它是一种接口,为各种不同的数据结构提供统一的访问机制,然和数据结构只要部署iterator接口,就可以完成遍历操作。...原创 2020-02-08 23:37:09 · 262 阅读 · 0 评论 -
ES6 -Set和Map数据结构
Set数据结构1.set数据结构基本用法。ES6 提供了一个新的数据结构–set,它类似于数组,但是成员的值都是唯一的,没有重复。Set 本身是一个构造函数,用来生成Set数据结构 //1 const s = new Set(); [2,3,4,5,4,2,2].forEach(x => s.add(x)); for(let ...原创 2020-02-08 18:39:05 · 168 阅读 · 0 评论 -
ES6 -symbol基础
一:Symbol的基本概述ES5对象的属性都是字符串,这容易造成属性名的冲突。而ES6引入类型·Symbol就是从根本上防止属性名冲突。他是javascript的第七个原始数据类型。前六个分别为Undefined,Null,Object,String,Number.Bealean1.对象名可以用字符串或者symbol两种类型。而symbol类型唯一,不会和其他属性名发生冲突。 ...原创 2020-02-07 18:26:54 · 180 阅读 · 0 评论 -
ES6箭头函数绑定this
ES6明确指出,箭头函数this绑定的作用域为this所在的定义域内;这里我举几个例子简单说明一下:1 function Timer(){ this.s1 = 0; this.s2 = 0; setInterval(() => { this.s1 ++; }, 1000); ...原创 2020-02-03 22:32:26 · 387 阅读 · 0 评论 -
ES6遍历对象属性的方法
1.属性的数据特征1.ES5中每个对象的每一个属性都有一个相应的描述对象,用于控制这个属性的行为。每个对象都有四个数据特征。configurable 对象属性是否可重新定义作用:能否使用delete、能否需改属性特性、或能否修改访问器属性、,false为不可重新定义,默认值为trueenumerable 对象属性是否可枚举作用: 对象属性是否可通过for-in循环,flase...原创 2020-02-02 20:59:58 · 2375 阅读 · 0 评论 -
ES6--对象的拓展(一)
ES6对象的拓展重点知识1(ES6中关于对象的简写)ES6 允许在对象中只写属性名,不写属性值 例1 var foo = 'bar'; var baz = {foo}; console.log(baz); //{foo:bar} // => 等同于 var baz = { foo:foo }...原创 2019-12-19 22:39:10 · 144 阅读 · 0 评论 -
ES6 -解构赋值的几个用途【回顾】
1.用途一:交换x,y变量的值 let x = 1; let y = 2; console.log('x:'+x, 'y:'+y); //x:1 y:2 //结构赋值 [x,y] = [y,x]; console.log('x:'+x, 'y:'+y); //x:2 y:12.用途二: 从函数返回多个值//函数只能返回一个值,...原创 2019-12-16 20:05:31 · 305 阅读 · 0 评论 -
ES6 promise详解
ES6 Promise1.什么是promise?ES6 中一个非常重要和好用的特性就是Promisepromise 到底是做什么的呢?promise 是异步编程的一种解决方案。那什么时候我们回来处理异步事件呢?1.一种很常见的场景就是网络请求2.我们分装一个网络请求的函数,因为不能立即拿到结果,所以不能像简单的3+4 = 7一样将结果返回。3.所以我们往往会传入另外一个...原创 2019-12-03 01:19:07 · 1086 阅读 · 0 评论 -
ES6:函数的拓展
1.函数的默认值//ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 function log(x, y){ y = y || "world"; console.log(x,y); } log('hello'); //hello world log('hello', 'china'); //he...原创 2019-11-05 01:26:33 · 139 阅读 · 0 评论 -
ES6:字符串,数组,数值的扩展
1.字符串的拓展1.模板字符串 `` let name = `我是模板字符串`; console.log(name);2.模板字符串引用变量 let name = `康家豪"`; let sayHello = `我的名字叫${name}`; console.log(sayHello);3.模板字符串可以换行 let result = { ...原创 2019-11-05 01:17:24 · 348 阅读 · 0 评论 -
ES6:解构赋值
本文参考《es6入门标准》来写。01-解构赋值初识ES6允许按照一定模式,从数组和对象中提取值,对变量进行性赋值,这被称为解构。以前为变量赋值,只能直接指定值。eg1:{ let a = 1, b = 2, c = 3;}eg2: { let [a,b,c] = [1,2,3];}这种语法,可以从数组中提取值,按照对应位置,对变量赋值。本质上...原创 2019-11-03 17:41:29 · 252 阅读 · 0 评论 -
ES6:变量let和const
本博客根据阮一峰老师的《ES6标准入门》来写。ES5变量声明的缺点:1.可以重新声明 var a = 2; var a = 5; console.log(a);2.无法限制修改3.没有块级作用域 { var a = 12; } console.log(a); //121.let命令01.let用来声明变量用法类似var,只在let命令所在的代码块有效.eg...原创 2019-11-03 17:31:44 · 162 阅读 · 0 评论