0
点赞
收藏
分享

微信扫一扫

ES6 函数——函数参数的扩展、箭头函数

墨春 2022-02-22 阅读 112

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

在这里插入图片描述

举报

相关推荐

0 条评论