箭头函数
箭头函数ES6的一个新特性.
一个简单的函数如下:
() => "simple function"
// () 代表函数参数
// => 函数体定义的开始
// =>后面的内容为函数体
可以看到在ES6中可以省略function
管关键字来定义函数,使用=>
操作符来定义函数体,故此称为箭头函数.
上面定义了一个没有名字的匿名函数,我们也可以创建一个有名字的函数.
var simpleFn = () => "simple function"
现在我们就可通过simpleFn
引用去调用该函数.
这里我们省略了return
语句,因为在ES6中,当函数体只有一条语句时,隐式地返回该语句执行后的值,当有多条语句时,可显式的用return
返回我们需要的数据即可!
let与var
这里谈一下let与var两个关键字,都是为了声明变量,let是JavaScript新增加的关键字.它允许声明限制在一个特定块作用域内的变量!
如果先接触过诸如C,Java这类强类型语言的,每一个变量都有自己的作用域,对于C语言而言,大括号内声明的变量,一旦离开大括号该变量就不存在了,然而JavaScript中var声明的变量始终具有全局性,不管是在什么地方声明的,刚开始接触觉得这个设计有点反人类.
好在ES6中出现了let关键字,let并不是什么高大上的语法,只是为了让var反人类的操作恢复正常,也就是let声明的变量就和C,Java等语言中的变量具有块级作用域.
var simpleFn = () => {
if (true) { // if块级作用域开始
let a = 1;
var b = 2;
console.log(a);
console.log(b);
} // if块级作用域结束
console.log(a);
console.log(b);
}
正常情况下,a,b变量应该在if语句块结束后,变量变销毁了,但是在JavaScript中用var声明的变量,即使if块级结束后,变量b依然存在,只有用let声明的变量才会销毁.
个人理解JavaScript中var声明变量对于JavaScript倡导的函数式编程产生了很大的矛盾,所以引入了let关键字.
export与import
ES6引入了模块的概念.ES6模块存储在文件中.即一个.js
文件就可以看作为一个模块.export
用于将当前模块中的函数以便其他函数方便使用,import
则是将导出的函数导入.