背景介绍
在之前的进阶篇已经给出了ES6在对象上做的的优化和改变,那这一篇进阶篇就来说说ES6的大语法糖——函数,循环,顺便给出之前基础篇和进阶篇的传送门:
特性重点
一、【重点】函数参数的默认值
ES6有了很方便的参数默认值设置,简单实用
function log(x, y = 'World'){console.log(x, y);}
二、【重点】箭头函数
这是一个超级语法糖,使用=>来定义函数,如下代码示例:
var f = v => v; // 等同于 var f = function(v) { return v; };
var f = () =>5; // 等同于 var f = function(){ return5 };
var sum = (num1, num2) => num1 + num2;
// 等同于 var sum = function(num1, num2) { return num1 + num2; };
使用箭头函数,可以解放JS的冗余回调写法,如下所示:
[1,2,3].map( function(x){ return x * x; } ); // 简化后如下
[1,2,3].map(x => x * x);
var result = values.sort( function(a, b){ return a - b;} ); // 简化后如下
var result = values.sort( (a, b) => a - b);
另外有一点需要的注意的是,箭头函数里的this,绑定定义时所在对象,而不是使用时的对象,这和以往的认知不同,也解决了this指向混乱的问题。
三、【重点】for...of循环
for...of循环可以代替数组实例的forEach方法
for( let v of arr ) { console.log(v); }
和for...in的区别,for...of可以遍历键与值,for...in只能遍历键名
对于普通的对象,for...of结构不能直接使用,会报错,必须部署了iterator接口后才能使用。但是,这样情况下,for...in循环依然可以用来遍历键名
总结
ES6在函数方法与循环方面的优化和改进主要体现在了使用更多更强大的语法糖,极大程度地解决了JS开发人员因为回调,循环弄得头疼不已的问题。另外关于函数方法以及循环,本章重点都写得极其精简,因为主要突出了重点的概念,写在文章里的都是最重点的部分,其余的拓展特性和细节,个人感觉有点冷僻,当然,所有细节在文末的链接都会有更为详尽的介绍。
后续的完结篇已经完成,如下传送门:
本文基于阮一峰的ECMAScript 6 系列文章和众多网络散文资料汇聚。在此给出原文链接,上面给出的重点一览,都可以在下面链接找到更为详尽的讲解:
如果有任何的批评建议,BUG反馈,问题反馈,或是想法建议,帮助支持,个人都十分欢迎,我个人的联系方式如下:)
作者:cheneyxu
邮箱:457299596@qq.com
QQ:457299596
关于:XServer官网