
es6
TimChen666
持续学习的渣渣
展开
-
ES6——解构赋值
数组类型左右各一个数组let a,b;[a,b] = [1,2];console.log(a,b); // 1, 2数值赋值给变量(rest)let a,b,rest;[a,b,...rest] = [1,2,3,4,5,6];console.log(a,b,rest); // 1, 2, [3,4,5,6]数组嵌套var [a,[b,c]] = [1,[2,3]];console.l原创 2017-09-26 15:41:47 · 191 阅读 · 0 评论 -
AMD、CMD模块化规范
什么是AMD、CMD、CommonJS?AMD(异步模块)AMD是Require JS在推广过程中对模块定义的规范化产出物。 参考代码如下//通过defined引入//第一个参数是依赖包路径,回调函数传入lib参数,得到lib里面的方法defined(['package/lib'],function(lib){ function foo(){ lib.log('Hel原创 2017-10-03 21:36:49 · 380 阅读 · 0 评论 -
ES6——Descrotor(修饰器)
基本概念Descrotor是一个函数,它可以用来修改类的行为,它只在类范围内使用。基本用法类的修饰let typename = function(target,name,descriptor){ //在类上添加静态属性myname target.myname='hello' } //使用修饰器 @typename class Test{原创 2017-09-28 00:55:33 · 273 阅读 · 0 评论 -
ES6——Generator
概念通俗来讲,这就是异步编程的一种解决方案。早期方式是通过回调,es6新增加了Promise,而Generator也是用于异步编程的,但更高级一点。Generator包含多个步骤,每个步骤的标志就是yield或return。遇到yield或return,就会停止运行。进入下一步的时候,需要调用next( )。 使用方法基本定义生成器函数以function *开头 返回值: Iterator原创 2017-09-27 23:43:31 · 219 阅读 · 0 评论 -
ES6——Iterator(遍历器)
概念遍历器(Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就可以完成遍历操作。遍历过程:(1)创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。(2)第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员。(3)第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。原创 2017-09-27 21:38:58 · 336 阅读 · 0 评论 -
ES6——模块化
导出 1)语句前面加export export let A = 123; 2)在js文件最后加export default{} export default{ A, B, ... } 导入对应导出方式——11)import {A,B,…} from ‘路径’2)import *原创 2017-09-27 18:28:36 · 191 阅读 · 0 评论 -
ES6——Promise
简介Promise是解决异步编程的一种解决方案。什么是异步?已有函数A,A去执行一个步骤,A执行完,再执行B。A -> B这么一个过程就是异步。如何异步编程?第一种:回调函数第二种:事件触发而,Promise有别于以上两种。 回调 && Promise 回调语法定义 A = function(B){ A函数部分; B函数部分; } 调用 A(自定原创 2017-09-27 17:19:43 · 191 阅读 · 0 评论 -
ES——类(Class)
实例方法定义与生成使用class定义,使用new生成。 //基本定义和生成实例 class Parent{ constructor(name='Tim'){ this.name = name; } } //实例 let ccc = new Parent('v'); console.log('实例',原创 2017-09-27 16:44:12 · 2605 阅读 · 0 评论 -
ES6——Proxy(代理)、Reflect(反射)
Proxy(代理)Proxy可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy这个词的原意是代理,用在这里表示由它来“代理”某些操作,可以译为“代理器”。语法new Proxy(被代理对象,处理函数)常用方法 get(被代理对象,k...原创 2017-09-27 14:55:51 · 1104 阅读 · 0 评论 -
ES6——set、map数据结构
Set就是常见的集合,可以理解成数组,但是它的元素是不能重复的,具有唯一性。方法1)add() 增加元素 2)size() 元素个数3)delete() 移除4)clear() 清空5)has() 判断是否有该元素6)entries() keys() values() 默认的就是,不需要写7)forEach 遍历实原创 2017-09-27 01:33:10 · 327 阅读 · 0 评论 -
ES6——Symbol数据类型
作用声明独一无二的变量两个Symbol是不相等的。let a1 = Symbol(); //不用newlet a2 = Symbol();console.log(a1===a2); //false防止key值冲突let a1=Symbol.for('abc');let obj={ [a1]:'123', 'abc':345, 'c':456};原创 2017-09-27 00:59:02 · 304 阅读 · 0 评论 -
ES6——对象扩展
新增方法简洁表示法实例先定义变量并赋值,es5:对象属性等于变量es6:直接写变量名let o=1;let k=2;let es5={o:o,k:k};let es6={o,k};console.log(es6); //{o:1 , k:2}属性是函数,忽略functionlet es5_method={ ...原创 2017-09-27 00:36:39 · 230 阅读 · 0 评论 -
ES6——Function扩展
参数默认值实例function test(x, y='World'){ console.log(x,y);}test('Hello'); // Hello World注意默认值后面不能再跟参数,例如c。除非这个参数也是有默认值的。rest函数一个函数的最后一个参数有“…”的前缀 把一组不确定长度的参数,转换为数组实例function test3(...arg){ for(let原创 2017-09-26 23:44:21 · 236 阅读 · 0 评论 -
ES6——Array扩展
新增方法Array.of 变量转为数组实例let arr = Array.of(1,2,3,4,5);console.log(arr); // [1,2,3,4,5]如果不放任何参数,返回一个空数组。Array.from 类数组转为数组实例let p = document.quertSelectorAll('p');let pArr = Array.from(p);pArr.forEac原创 2017-09-26 22:50:37 · 205 阅读 · 0 评论 -
ES6——Number扩展
Number.isFinite() 是否有尽像无穷大、负无穷大是无尽。 实例console.log(Number.isFinite(2)); // true注意NaN会返回false,因为它不是一个数;除以0,也会返回falseNumber.isNaN() 非数字null 、 undefined也会返回false。 实例console.log(Number.isNaN(原创 2017-09-26 22:24:42 · 222 阅读 · 0 评论 -
ES6——字符串扩展
字符串新增方法includes——是否包含let str = 'string';console.log(str.includes('r')); // truestartsWith——是否以xxx开头let str = 'string';console.log(str.startsWith('str')); // trueendsWith——是否以xxx结尾let str = 'string'原创 2017-09-26 21:44:29 · 272 阅读 · 0 评论 -
ES6——正则扩展
y修饰符y和g 都是全局匹配。区别g是从上一次匹配的位置开始,继续寻找,直到找到为止。 y,必须是紧跟着的下一个位置匹配成功,才能输出。实例{ let s = "bbb_bb_b"; let a1 = /b+/g; let a2 = /b+/y; console.log('one',a1.exec(s), a2.exec(s)); console.log('tw原创 2017-09-26 16:26:13 · 296 阅读 · 0 评论 -
ES6——let和const
作用域es6之前,只有2种作用域全局作用域和函数作用域。到了es6,新增了一个块级作用域。所谓的块级作用域,就是指用{}大括号括起来的范围。 letlet只有一种域,块级作用域。使用注意使用let,不能重复定义变量。实例for(let i = 0l i < 5; i++){ console.log("i:",i); }console.log("i:", i);运行结果let只作用于原创 2017-09-26 15:24:37 · 168 阅读 · 0 评论