手记

【金秋打卡】第16天 再学JavaScript ES(6-10)全版本语法大全

课程名称:再学JavaScript ES(6-10)全版本语法大全
课程章节:2-21 Arrow Functions(箭头函数)
课程讲师:快乐动起来呀
课程内容:
ES5声明函数两种形式:

function f(){

}

let f = function(){

}

ES6声明函数允许使用“箭头”(=>)定义函数。

var f = z => z;

// 等同于
var f = function (z) {
  return z;
};

小括号
有且只有一个参数时,小括号可以省略
如果没有参数,或者参数多于1个参数,小括号不可以省略

花括号
返回的是表达式,可以省略return和{}
返回的是字面量对象(即有花括号),可以省略return和{},但是对象要用小括号括起来(对象的花括号括在小括号内,小括号在这里当做运算表达式的作用)
返回其它的值,都不可以省略return和{}

箭头函数有几个使用注意点
箭头函数没有自己的this对象
不可以当作构造函数,也就是说,不可以对箭头函数使用new命令,否则会抛出一个错误
不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替
不可以使用yield命令,因此箭头函数不能用作 Generator 函数

由于箭头函数使得this从“动态”变成“静态”,下面两个场合不应该使用箭头函数。
第一个场合是定义对象的方法,且该方法内部包括this。
第二个场合是需要动态this的时候,也不应使用箭头函数。

课程收获:
当不清楚this的指向时,要看是谁在调用function,谁调用的this就指向谁。
ES5中谁调用函数,this就指向谁;
而ES6中则是函数在定义时this指向谁,就指向谁(跟自由变量的规则一样)。
箭头函数没有自己的this对象,内部的this就是定义时上层作用域中的this。
也就是说,箭头函数内部的this指向是固定的,相比之下,普通函数的this指向是可变的。

0人推荐
随时随地看视频
慕课网APP