美文网首页
带你读书之“红宝书”:第十章 函数②

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

作者: 前端不许笑 | 来源:发表于2022-02-20 22:12 被阅读0次

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

    写在前头

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

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

    思维导图

    image.png

    简述

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

    10.3理解参数

    image.png
    • 与其他语言的参数的不同

      参数真实传入个数和定义函数时要接受的个数不一定要严格一样。

    • 原因

      传入的参数是以一个数组方式来存储的,不在乎这个“数组”里面是否是空或者是元素“溢出”。并且根本不存在验证命名参数的机制。

    • arguments对象

    ①怎么访问

    使用 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看做一个数组,那么第一个参数对应arguments[0]。2个的值一直一样。

    ③严格模式

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

    ④命名参数未传入

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

    • 箭头函数中的参数

    ①不使用arguments对象

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

    ②包装函数

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/szzvlrtx.html