ES6
文章平均质量分 62
柒青衿
前端
展开
-
ES6-let带来了更简单的块级作用域
let 带来了更简单的块级作用域1. ES6新增了let命令,用于声明变量。其与var的不同在于,用let声明的变量只在 { } 内有效。这使得我们可以很方便的实现块级作用域,不再使用立即实行函数。{ let a=1; var b=2;}console.log(a); //undefinedconsole.log(b); //2在for循环中使用let可以有效避免全局变量污染。原创 2016-04-04 21:39:57 · 1880 阅读 · 0 评论 -
ES6-Generator与异步操作
Generator与异步操作1.Generator概念可以把Generator理解成一个状态机(好像React中有很多state),封装了多个内部状态。执行Generator返回的是一个遍历器对象,可以遍历Generator产生的每一个状态。在function后加*就可以声明一个Generator函数。 function* hiGenerator(){yield 'hi';原创 2016-04-22 16:52:11 · 3393 阅读 · 0 评论 -
ES6-Promise
Promise1.Promise概念Promise 对象有三种状态: Fulfilled 可以理解为成功的状态 Rejected 可以理解为失败的状态 Pending 既不是 Fulfilld 也不是 Rejected 的状态,可以理解为 Promise 对象实例创建时候的初始状态2.三个重要方法在 Promise 对象当中有三个重要方法————resolve原创 2016-04-22 17:14:22 · 2977 阅读 · 0 评论 -
ES6-Iterator与for..of..遍历
Iterator与for..of..遍历1.Iterator概念遍历器(Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制。JavaScript中有些数据结构具备原生的Iterator接口。为了更好理解这个概念,我们也可以自己写一个Iterator。 var it = simIteractor(['hi','ES5']); console.lo原创 2016-04-22 15:51:48 · 775 阅读 · 0 评论 -
ES6-Object的变化
Object的变化1. ES6允许在对象中只写属性名,不写属性值,属性值为属性名对应的变量值。 var a = 'hi'; var obj = {a}; console.log(obj); //Object {a: "hi"}2.对象内方法的简写。 var a = 'hi'; var obj = { name: 'ES6', a, sayHi(){原创 2016-04-22 15:10:52 · 1976 阅读 · 0 评论 -
ES6-Proxy与Reflect 实现重载(overload)
Proxy与Reflect实现重载(overload)从语法角度讲JavaScript不支持重载。原因很简单,JS中函数可以传入任意类型、任意个数的参数,通通可以通过在函数内使用this.arguments获得。这样,就无法实现同名函数参数列表不同实现不同功能。当然,在实际使用过程中,可以人为去检测传入实参的个数及类型,来进行不同操作。但是,我认为这不能叫做重载。ES6带来了Proxy和R原创 2016-04-16 21:56:01 · 4381 阅读 · 0 评论 -
ES6-Symbol类型
Symbol类型1. 为了避免属性名的冲突,ES6新增了Symbol类型。Symbol可以产生一个独一无二的值。 let s1 = Symbol('a'); let s2 = Symbol('a'); console.log(s1); //Symbol(a) console.log(typeof s1); //symbol console.log(s1 == s2原创 2016-04-22 15:14:35 · 1559 阅读 · 0 评论 -
ES6-新数据结构Set与WeakSet
新数据结构Set与WeakSet1. SetSet类似于数据,但是成员值都是唯一的。生成Set的方式如下。var s = new Set();[1,1,3,3,5,5].map( x => s.add(x) );console.log(s); //Set {1, 3, 5}没有重复值哟,如果面试官再让你编写数组去重的函数是不是简单多了。或者你可以这样写。va原创 2016-04-10 21:45:13 · 949 阅读 · 0 评论 -
ES6-新数据结构Map
新数据结构MapJavaScript中对象的本质是键值对的集合,但是键只能是字符串。为了弥补这种缺憾,ES6带来了一种新的数据结构Map。Map也是键值对的集合,只是键不仅可以是字符串还可以是其他数据类型,比如:对象(是不是很神奇)。请看下面例子。var m = new Map();var ul = document.getElementsByTagName('ul');m.set(ul,原创 2016-04-10 21:06:19 · 2825 阅读 · 0 评论 -
ES6-深入理解Generator yield & Koa中间件执行顺序
几个月前写过一篇博客,讲Generator,比较基础。最近总在写ES6,想深入讲讲yield的执行顺序。你可能想问,Generator执行顺序很简单啊,就是调用next()就执行下一个yield后面的代码。很多问题,如果你认为很简单,很可能是你理解不深刻,就像我当初也认为Generator很简单。如果你关心koa中间件的执行顺序也可以接着看看。yield与yield*关于这个话题,你只需要知道四点:原创 2016-07-15 22:05:08 · 8504 阅读 · 0 评论