1 function log(x, y = 'World') { 2 console.log(x, y); 3 } 4 console.log('Hello') // Hello World 5 console.log('Hello', 'China') // Hello China 6 console.log('Hello', '') // Hello
作⽤域
⼀旦设置了参数的默认值,函数进⾏声明初始化时,参数会形成⼀个单独的作⽤域
等到初始化结束,这个作⽤域就会消失。这种语法⾏为,在不设置参数默认值时,是不会出现的
下⾯例⼦中, y=x 会形成⼀个单独作⽤域, x 没有被定义,所以指向全局变量 x
箭头函数
1 2 3 4 5
var f = v => v; // 等同于 var f = function (v) { return v; };
如果箭头函数不需要参数或需要多个参数,就使⽤⼀个圆括号代表参数部分
1 2 3 4 5 6 7 8
var f = () => 5; // 等同于 var f = function () { return 5 }; var sum = (num1, num2) => num1 + num2; // 等同于 var sum = function(num1, num2) { return num1 + num2; };
super关键字
this 关键字总是指向函数所在的当前对象,ES6 ⼜新增了另⼀个类似的关键字 super ,指向当前