关于JavaScript的ES6新特性
目录
前言
由于JavaScript的语言特性以及发展的迅速,JavaScript以及攻占了web前端开发的大壁江山。而随着Nodejs的出现,JavaScript居然能够运行在服务器上,甚至还可以制作一些轻量级的桌面级应用,例如著名的VS code,还有Typora、GitHub桌面应用等等,可见Nodejs的强大。Nodejs的框架是基于V8的引擎,是目前速度最快的JavaScript引擎。
JavaScript语言本身是完善的函数式语言,在前端开发时,开发人员往往写得比较随意,让人感觉JavaScript就是个“玩具语言”。然而,在Node环境下,通过模块化的JavaScript代码,加上函数式编程,并且无需考虑浏览器兼容性问题,直接使用最新的ECMAScript 6标准,可以完全满足工程上的需求。而ECMAScript 6,即ES6是个什么东西,这在编写Node程序中起了很大的作用,现在让我们来了解一下吧!
一、ES6发展历史
ECMAScript 的历史
ES6 是 ECMAScript 标准十余年来变动最大的一个版本,为其添加了许多新的语法特性。
- 1997 年 ECMAScript 1.0 诞生。
- 1998 年 6 月 ECMAScript 2.0 诞生,包含一些小的更改,用于同步独立的 ISO 国际标准。
- 1999 年 12 月 ECMAScript 3.0诞生,它是一个巨大的成功,在业界得到了广泛的支持,它奠定了 JS 的基本语法,被其后版本完全继承。直到今天,我们一开始学习 JS ,其实就是在学 3.0 版的语法。
- 2000 年的 ECMAScript 4.0 是当下 ES6 的前身,但由于这个版本太过激烈,对 ES 3 做了彻底升级,所以暂时被"和谐"了。
- 2009 年 12 月,ECMAScript 5.0 版正式发布。ECMA 专家组预计 ECMAScript 的第五个版本会在 2013 年中期到 2018 年作为主流的开发标准。2011年6月,ES 5.1 版发布,并且成为 ISO 国际标准。
- 2013 年,ES6 草案冻结,不再添加新的功能,新的功能将被放到 ES7 中;2015年6月, ES6 正式通过,成为国际标准。
二、ES6基本语法
1、let声明变量
let可以声明一个块级的作用域,例如下面的代码中,let声明的a的值只在自己的作用域里有效
let a = 3;
if(1){
let a = 5;
console.log(a);
//此处a的值为5
}
console,log(a);
//此处a的值为3
let声明的块级作用域在使用中很常用的就是用来声明for循环里面的i值,在开发中,假如使用var来声明,i的值在循环结束后并不会消失,这样可能就会影响到我们写的其他代码。而使用let声明就没有这种烦恼啦,let声明的i只会在本次循环中有效,假如你在其他地方使用i,其输出的结果是undefined
var arr = ['a','b','c'];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
console.log(i);
//此时的输出为3.因为var声明的变量不会消失
var arr = ['a'.'b','c'];
for(let i=0;i