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

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

写在前头

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


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


思维导图

1dae418daf7b468f9ced6373ea9aa214_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


简述

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


10.3理解参数

5a1a19558640482a9241b34541ef535f_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.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对象。



目录
相关文章
|
前端开发 JavaScript C语言
带你读书之“红宝书”:第十章 函数①
带你读书之“红宝书”:第十章 函数①
72 0
带你读书之“红宝书”:第十章 函数①
|
前端开发 C语言
带你读书之“红宝书”:第十章 函数④
带你读书之“红宝书”:第十章 函数④
63 0
带你读书之“红宝书”:第十章 函数④
|
JavaScript 前端开发 C语言
带你读书之“红宝书”:第十章 函数③
带你读书之“红宝书”:第十章 函数③
81 0
带你读书之“红宝书”:第十章 函数③
|
前端开发 JavaScript C语言
带你读书之“红宝书”:第十章 函数⑤
带你读书之“红宝书”:第十章 函数⑤
53 0
带你读书之“红宝书”:第十章 函数⑤
|
安全 前端开发 C语言
带你读书之“红宝书”:第十章 函数⑥
带你读书之“红宝书”:第十章 函数⑥
58 0
带你读书之“红宝书”:第十章 函数⑥
|
前端开发 C语言
带你读书之“红宝书”:第十章 函数⑦
带你读书之“红宝书”:第十章 函数⑦
71 0
带你读书之“红宝书”:第十章 函数⑦
|
存储 前端开发
带你读书之“红宝书”:第五章 基本引用类型④
带你读书之“红宝书”:第五章 基本引用类型④
67 0
带你读书之“红宝书”:第五章 基本引用类型④
|
前端开发
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符③
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符③
52 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符③
|
前端开发 JavaScript C语言
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符④
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符④
72 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符④
|
前端开发
带你读书之“红宝书”:第五章 基本引用类型③
带你读书之“红宝书”:第五章 基本引用类型③
61 0
带你读书之“红宝书”:第五章 基本引用类型③