箭头函数 let与var

箭头函数

箭头函数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则是将导出的函数导入.

发布了212 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43833642/article/details/104344616