带你读书之“红宝书”:第十章 函数②

2022-02-20  本文已影响0人  前端不许笑

「这是我参与2022首次更文挑战的第33天,活动详情查看:2022首次更文挑战

写在前头

大多数小伙伴看技术书籍都会用“啃”来描述读书的直观感受,当然我也是一个前端小白,白的透明那种,但是我在读技术书籍感觉到“啃”的时候,我希望把我啃红宝书第四版的过程的想法,总结带给大家,以供后来者能够更快上手。

注: 本文由于作者水平原因,如有错误之处,恳请大家指正,另外随着学习的深入,体会的加深,我会不断回来更新,修改这类文章。

思维导图

image.png

简述

函数这一章其实在有一定的编程基础,比如学过一点c语言就很好读下去。整体还是易读板块。

10.3理解参数

image.png

①怎么访问

使用 function 关键字定义(非箭头)函数时,可以在函数内部访问 arguments 对象,从中取得传进来的每个参数值。

②是什么

arguments 对象是:

③length属性

arguments像数组一样有length属性,可以用来检测arguments里面有多少个参数。

④和命名参数一起使用


function doAdd(num1, num2) {
    if (arguments.length === 1) {
      console.log(num1 + 10);
    } else if (arguments.length === 2) {
    console.log(arguments[0] + num2);
     }
}

⑤与命名参数值同步

可以使用类似数组的操作方式将参数赋值。

    function doAdd(num1, num2) {
    arguments[1] = 10;
    console.log(arguments[0] + num2);
    }

①不同

ECMAScript 函数的参数只是为了方便才写出来的,并不是必须写出来的。

在ECMAScript 中的命名参数不会创建让之后的调用必须匹配的函数签名。

②原因

根本不存在验证命名参数的机制。

①使用

arguments 对象可以跟命名参数一起使用,参数就是arguments“数组”里面的每一个元素的“名字”。可以一起使用。

②值同步

就把arguments看做一个数组,那么第一个参数对应arguments[0]。2个的值一直一样。

③严格模式

无法可以使用类似数组的操作方式将参数赋值。就是参数传入时是什么值,就无法后面改变。

④命名参数未传入

对于命名参数而言,如果调用函数时没有传这个参数,那么它的值就是 undefined。

①不使用arguments对象

参数将不能使用 arguments 关键字访问,而只能通过定义的命名参数访问。

②包装函数

在一个包装函数中创建一个箭头函数,可以在箭头函数里面使用这个包装函数的arguments对象。

上一篇下一篇

猜你喜欢

热点阅读