es6再回顾 info深入理解es6

迭代器和for-of循环

es5使用内建的forEach方法来遍历数组

arr.foreach(function(value){

  console.log(value);

});

这段代码看起来简洁,但这种方法有一个小缺陷:你不能使用break语句中断循环,也不能使用return语句返回到外层函数。

es6  for-of 可以正确响应break、continue和return语句

for (var value of myArray) {
  console.log(value);
}

for-of可以用来干什么

for-in循环用来遍历对象属性。

for-of循环用来遍历数据—例如数组中的值。

for-of循环也支持字符串遍历,它将字符串视为一系列的Unicode字符来进行遍历:

它同样支持Map和Set对象遍历。

for (var [key, value] of phoneBookMap) {
   console.log(key + "‘s phone number is: " + value);
}

var map=new Map([[‘a‘,1],[‘b‘,2]]);

for (var [key, value] of map) {
console.log(key + "‘s phone number is: " + value);
}
VM1833:2 a‘s phone number is: 1
VM1833:2 b‘s phone number is: 2

Map:Map结构提供了“值—值”的对应,是一种更完善的Hash结构实现。如果你需要“键值对”的数据结构,Map比Object更合适。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。

//1.
var map = new Map();
map.set(‘one‘, 1);
map.set(‘two‘, 2);
map.set(‘three‘, 3);
//...

//2. var map = new Map([[‘one‘,1], [‘two‘, 2], [‘three‘, 3]]);

关于Map:http://www.cnblogs.com/sker/p/5520392.htmlhttp://www.cnblogs.com/dagaoxiaozheng/p/6605981.html
				
时间: 2024-08-02 01:00:43

es6再回顾 info深入理解es6的相关文章

理解 ES6 Generator-next()方法

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>generator-next</title> 6 </head> 7 <body> 8 9 <h3>理解 ES6 Generator-next() 方法</h3> 10 11 <scr

理解ES6的模块(Understanding ES6 Modules)

理解ES6的Modules 原文出处: Understanding ES6 Modules. 基础(Basic) 在ES6中,每个模块的都是定义在它自己的文件中.在模块中定义的变量或者是函数在外部都是不可见的, 除非你显示的使用export来导出它们. 这意味着你可以在你的模块中编写代码, 然后只导出那些需要被其他部分可以访问的部分几个. ES6模块是使用原生的定义方式进行定义的. 如果想从一个模块中导出某个变量, 只需要使用关键词export. 相似的, 如果想要使用来自另外一个模块中的变量,

深入理解es6 class

我在csdn中写的相关文章,有兴趣可以查看,请点击下方链接(因为都是原创博客,有时候会有写错的地方, 所以就统一维护一份,在csdn里面编写) 希望写的文章对您有帮助,谢谢! 深入理解es6 class 原文地址:https://www.cnblogs.com/jason0621/p/11161359.html

《深入理解ES6》 PDF中英文+《ES6标准入门第3版》PDF分析

ES6是ECMAScript标准十余年来变动最大的一个版本,其中添加了许多新的语法特性,既有大家耳熟能详的Promise,也有闻所未闻的Proxy代理和Reflection反射:既有可以通过转译器(Transpiler)等方式在旧版本浏览器中实现兼容的let.const.不定参数.展开运算符等功能,亦有无论如何都无法实现向前兼容的尾调用优化.深入理解ES6的特性对于所有JavaScript开发者而言至关重要,在可预见的未来,ES6中引入的语言特性会成为JavaScript应用程序的主流特性,这也

深入理解ES6里的promise

一.ES6 Promise是什么? 复杂的概念先不讲,我们先简单粗暴地把Promise用一下,有个直观感受.那么第一个问题来了,Promise是什么呢?是一个类?对象?数组?函数? 别猜了,直接打印出来看看吧,console.dir(Promise),就这么简单粗暴. 这么一看就明白了,Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法. 这么说用Promise new出来的对象肯定就有then.catch

从 ES6 高阶箭头函数理解函数柯里化

前言:第一次看到多个连续箭头函数是在一个 react 项目中,然鹅确认了下眼神,并不是对的人,因为看得一脸懵逼.em......于是开始各种搜索,先是知道了多个连续箭头函数就是 es6 的多次柯里化的写法,对于函数柯里化,很久以前就知道这个名次,但是并不理解,也没有去了解.为了弄明白多个连续箭头函数,开始了简化之路. 首先看到了这样的一个例子: let add = a => b => a + b 以上是一个很简单的相加函数,把它转化成 ES5 的写法如下: let add = function

通过原型继承理解ES6 extends 如何实现继承

前言 第一次接触到 ES6 中的 class 和 extends 时,就听人说这两个关键字不过是语法糖而已.它们的本质还是 ES3 的构造函数,原型链那些东西,没有什么新鲜的,只要理解了原型链等这些概念自然就明白了.这话说的没错,但是这些继承的实现是否是我们想的那样呢,今天让我们来用原型链解释下 ES6 extends 如何实现的继承. 结论 这里先上结论,如果有理解不对的地方,欢迎在留言指出:如果有不理解的地方可以看完结论后继续阅读,如果阅读完后有难以理解指出也欢迎留言讨论. extends

《深入理解ES6》之Symbol

ES6在原有的5中原始类型:字符串.数字型.布尔型.null和undefined的基础上,引入了一种原始类型Symbol(可以通过typeof检测变量是否为Symbol类型). Symbol的使用方法 所有使用可计算属性名的地方,都可以使用Symbol. let firstName=Symbol("first name"); let person={ [firstName]:"jia" }; Object.defineProperty(person,firstNam

《理解 ES6》阅读整理:函数(Functions)(五)Name Property

名字属性(The name Property) 在JavaScript中识别函数是有挑战性的,因为你可以使用各种方式来定义一个函数.匿名函数表达式的流行使用导致函数调试困难,在栈信息中难以找出函数名.因为这些原因,ES6为所有函数都增加了名字属性. 选择合适的名字(Choosing Appropriate Names) 在ES6中所有的函数都有一个合适的名字属性.来看下面的例子: function doSomething() { //... } var doAnotherThing = func