ES6
姜皓
胸藏文墨怀若谷 腹有诗书气自华
展开
-
ES6(let.const命令)
1.作用域概念?1.全局作用域2.函数作用域3.块级作用域(ES6新增)2.如何使用let和const? 1.代码:运行结果为1.将let改为var,发现结果不变。代码:发现报错!!!(未定义引用错误)1.因为let声明的变量只在自己的块级作用域有效,for为一个块级作用域,声明的let在块级作用域之外不存在,其生命周期已结束,故访问(i)时报错.2.ES6中强制开启严格模式,在严格模式下,变量未...原创 2018-05-02 12:23:59 · 109 阅读 · 0 评论 -
ES6(Decorator(修饰器)
Decorator(修饰器)1.基本概念函数用来修改 类 的行为1.Decorator 是一个函数 2.通过Decorator(修饰器)能修改 类 的行为(扩展 类 的功能)3.Decorator(修饰器)只在类的范围有用2.基本用法见代码 一、Decorator(修饰器)定义结果修改 time 属性结果:(不允许修改,达到“只读”的功能) 2.类外面进行操作(必须在 class 前面)结果:第三...原创 2018-05-03 10:16:26 · 2664 阅读 · 0 评论 -
ES6(Generator)
Generator1.基本概念异步编程的一种解决方案2.next 函数的用法见代码3.yield* 的用法见代码 一、基本定义2.使用 Generator 作为遍历器的返回值通过 Generator 函数的方式3.状态机有 A B C 三种状态去描述一个事物,A-B、B-C、C-A,永远不会与第四种状态,用 Generator 处理这种状态机是特别适用的。 1.调用 let 方法运行第一个 yie...原创 2018-05-03 10:15:30 · 724 阅读 · 0 评论 -
ES6(Iterator 和 for...of 循环)
Iterator 和 for...of 循环1.什么是 Iterator 接口Iterator 接口功能:用一种相同办法的接口让不同的数据结构得到统一的读取命令的方式2.Iterator的基本用法见代码3.for...offor...of 循环就是不断调用Iterator 接口来达到这种形式一、Iterator 接口介绍1.数组调用Iterator 接口,数组内部已实现,直接调用即可,false代...原创 2018-05-03 10:12:39 · 170 阅读 · 0 评论 -
ES6(Promise)
Promise(异步编程的一种解决方案)1.什么是异步函数A,A去执行一个步骤,A执行再完执行B,这种执行方式实现有两种方式: 1.回调 2.事件触发。Promise 区别于这两种方式2.Promise 的作用解决异步操作问题3.Promise 的基本用法见代码 一.ES5中的回调(问题复杂时将难以解决,后期难以维护)(Ajax 过程)(先执行“执行”,1秒后执行 timeout1) ES6(P...原创 2018-05-03 10:10:35 · 127 阅读 · 0 评论 -
ES6(类)
类的概念1.基本定义2.继承 继承如何传递参数?(super)定义自己属性的时候调用 this 一定要在 super 之后(在继承关系中,子类的构造函数如果用 super 传递参数的过程中,super 一定放在构造函数的第一行)有参数则会覆盖3.getter 和 setter 赋值操作4.静态方法(通过 类 调用,而不是 类的实例 调用)5.静态属性(暂无关键词)...原创 2018-05-03 10:08:39 · 98 阅读 · 0 评论 -
ES6(Proxy 和 Reflect)
Proxy 和 Reflect1.Proxy 和 Reflect 的概念Proxy 意为 ‘代理’,连接了用户和真实对象之间的一个层Reflect 意为‘反射’ 反射的是Object2.适用场景 一、Proxy 语法1.类似于供应商的原始对象 obj ,通过 Proxy 新生成对象,这个对象是映射 Object 的,用户访问 monitor,通过 Proxy ,再传递给 obj 对象。2.设置...原创 2018-05-03 10:06:14 · 1590 阅读 · 1 评论 -
ES6(数据结构-2)
数据结构—2Map 与 Array 的对比Set 与 Array的对比Map 与 Object 的对比Set 与 Object 的对比(增、查、改、删)一、Map 与 Array 的对比1.增2.查3.改4.删二、Set 与 Array的对比1.增 2.查(若想为true,则需将 has 后的对象保存过 ) 3.改4.删三、Map Set 与 Object 的对比 1.增 2.查3.改4.删(涉...原创 2018-05-03 10:05:18 · 138 阅读 · 0 评论 -
ES6(数据结构)
ES6(数据结构)一、set 用法 set 对数组进行转化添加重复元素不会生效 (应用:去重复功能)转化过程不会有数据类型的转换 添加、删除、判断是否存在的方法2. 读取(遍历)的几种方法 二、WeakSet与Set的区别:1.WeakSet 的元素只能是对象2.WeakSet 的对象是弱应用(不会检测是否在其他中用过,不与回收机制挂钩)3.不能遍历,部分属性和方法 Set 没有 1. 只能...原创 2018-05-02 15:33:19 · 1319 阅读 · 0 评论 -
ES6(Symbol)
Symbol1.Syobol的概念这种数据类型提供一个独一无二的值2.Symbol的作用见代码 永远不可能相等,保证值的独一无二。 a3 a4 是 K值 相同名称的值不会冲突(对象中有用到 Symbol 做Key值的话,通过 let of 是拿不到属性的) 解决办法可以拿到Symbol 作为 Key 值的属性 可以像传统的那样采用遍历的方法取到全部属性值...原创 2018-05-02 15:31:10 · 541 阅读 · 0 评论 -
ES6(对象(object)新增特性)
ES6(对象(object)新增特性)1.简介表示法o,k 为属性;这种为无方法的情况。这种为有方法。2.属性表达式ES6中,【a】就是 b .3.新增API 1.数组也是引用类型2.Object.is 功能与 === 没有区别。 拷贝 1.该种拷贝是有限制的 ,浅拷贝。2.这种方法拷贝的是只有自身对象的属性。不拷贝继承属性和不可枚举的属性 entriseentrise 配合 Object 对...原创 2018-05-02 15:30:12 · 741 阅读 · 0 评论 -
ES6(函数新增特性)
ES6(函数新增特性)1.函数参数默认值没有 y 时,默认就是world有 y 时,输出值即可(错误)(C有默认值,正确)默认值后面不能再有没有默认值的变量 2.作用域y 取其前面的 x ;而不是 x = test; x 不在 y 的前面 3.test 参数将输入参数(离散值)转化成数组 4.扩展运算符 将数组转化成离散值 5.箭头函数arrow为函数名,第一个 = 后为参数, =>后为返...原创 2018-05-02 15:28:22 · 685 阅读 · 0 评论 -
ES6(数组)
ES6数组新增特性 1.空数组2.将伪数组转换成真正的数组将 p 标签集合转换成真正数组类似于map的用法,转换数组同时还在遍历。3.填充数组(将所有数组换成一个值) 1代表起始位置,3代表从起始位置到终止位置的长度4.遍历相关数组(存在兼容问题) 5.在当前数组内部,把制定数组成员复制到其他位置上0为起始位置,3代表从第三个开始读起,4代表截止位置。 6.查找find只会找到一个符合条件的,输...原创 2018-05-02 15:27:31 · 178 阅读 · 0 评论 -
ES6(数值)
ES6数值处理新增特性:1.新增方法2.方法调整 1.二进制和八进制 二进制以 0b 开头,其中B和b都可以;八进制以 0o 开头,其中O和o都可以.2.判断数值是否有效(有限)NaN为非数字,故为false 分母为0,故为false 判断是否为非数字3.判断是否为整数即接收的数必须是数字(-2^53---2^53)数的最大限与最小限判断值是否在数值安全范围里4.判断小数的整数部分并返回5.判断数...原创 2018-05-02 15:26:30 · 353 阅读 · 0 评论 -
ES6(字符串)
ES6新增字符串特性一、Unicode的表示法 当码值>2个字节(0xff)即第一个数字未处理,不显示处理这种超过2字节的情况,用{}包起来即可二、API1.ES5中码值>2个字节,长度为22.1和2为第一位置和第二位置的字符,3和4为第一位置和第二位置的码值,字符均为乱码,但其码值可以取出来。即ES5中对Unicode的处理不到位。 ES6中 ES6中新增codePoint API来...原创 2018-05-02 15:24:51 · 431 阅读 · 0 评论 -
ES6(正则扩展)
ES6中正则的扩展正则新增特性一、构造函数的变化1.ES5中new一个正则对象方法(一行中2个参数,二行中1个参数)(第一行中的第一个参数必须是字符串)2.ES6中新增一种方法(构造函数)(输出:i )第二个修饰符会覆盖第一个修饰符,flags是新增用来获取正则对象修饰符的属性。 二、y修饰符2-1.描述 第一步都可以匹配到bbb,第二步g修饰符可以匹配到,y修饰符匹配不到。g修饰符和y修饰符都是...原创 2018-05-02 15:23:23 · 159 阅读 · 0 评论 -
ES6(解构赋值)
解构赋值1.什么是解构赋值? 在语法上,就是赋值的作用,解构为(左边一种解构。右边一种解构,左右一一对应进入赋值)2.解构赋值的分类。1.左右为数组即为数组解构赋值;2.左右为对象即为对象解构赋值;3.左边是数组,右边是字符串,为字符串解构赋值。4.布尔值解构赋值为字符串的一种。5.函数参数解构赋值即为数组解构赋值在函数参数的一种应用。6.数值解构赋值为字符串解构赋值的一种。一、简介1.(数组解构...原创 2018-05-02 12:29:44 · 5885 阅读 · 1 评论 -
ES6(Module 模块化)
模块化ES6的模块化的基本规则或特点:1:每一个模块只加载一次, 每一个JS只执行一次, 如果下次再去加载同目录下同文件,直接从内存中读取。 一个模块就是一个单例,或者说就是一个对象;2:每一个模块内声明的变量都是局部变量, 不会污染全局作用域;3:模块内部的变量或者函数可以通过export导出;4:一个模块可以导入别的模块 一、导入和导出1.导出导入:结果:2.只取需要的结果:3.导出数目太多时...原创 2018-05-03 10:17:38 · 3413 阅读 · 0 评论