ES6 函数
1. 函数
1.只有在未传递参数,或者参数为 undefined 时,才会使用默认参数。null和空字符串被认为是有效的值传递。
<script>
function fn(name, age = 17) {
console.log(name + "," + age);
}
fn("woody"); // woody,17
fn("Smith", undefined) // Smith,17
fn("joney", ''); // joney,
fn("Amy", null); // Amy,null
</script>
2.不定参数用来表示不确定参数个数,形如,...变量名
,由…加上一个具名参数标识符组成。具名参数只能放在参数组的最后,并且有且只有一个不定参数。
//...values只能放在最后面,否则会报错
function f(a, ...values) {
console.log(values.length);
}
f(1, 2); //1
f(1, 2, 3, 4); //3
2. 箭头函数
1.基本语法:参数 => 函数体
2.使用
(1)当箭头函数没有参数或者有多个参数,要用 () 括起来。
var f = (a, b) => a + b;
console.log(f(6, 2)); // 8
(2)有一个参数可以不用写括号
var f = v => v;
console.log(f(1)); // 1
(3)当箭头函数函数体有多行语句,用 {}
包裹起来,表示代码块。
var f = (a, b) => {
let result = a + b;
return result;
}
console.log(f(6, 2)); // 8
(4)当只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回。
var f = v => v;
console.log(f(1)); // 1
(5)当箭头函数要返回对象且省略{} 时,为了区分于代码块,要用 () 将对象包裹起来
var f = (id, name) => ({
id: id,
name: name
});
console.log(f(6, 2)); // {id: 6, name: 2}
(6)箭头函数里面没有 this 对象。箭头函数体中的 this 对象是定义函数时的对象,而不是使用函数时的对象,比如该例子里的Window
。
var func = () => {
// 此时的 this 是外层的 this 对象,即 Window
console.log(this)
}
func(55) // Window
(7) 箭头函数里没有arguments
var func = () => {
console.log(arguments)
}
func(55); // ReferenceError: arguments is not defined