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

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

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

写在前头

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

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

思维导图

image.png

简述

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

10.11 函数表达式

image.png

函数声明

提升

函数声明会在代码执行之前获得定义。及时函数定义在函数调用之后也不会报错。

原因

JavaScript 引擎会先读取函数声明,然后再执行代码。而函数表达式的函数定义不会提升。不可以在定义之前调用函数。

匿名函数

别称

兰姆达函数

未用于赋值时

使用函数表达式其实就是创建一个匿名函数然后把这个函数赋值给一个变量。当这个函数没有赋值给一个变量时,函数的name属性是空字符串。

提升小例子

①使用if else 判断是否该选择使用哪一个函数。

如果if else 里面是函数声明,那么由于不同的浏览器会可以导致错误。

如果if else 里面是函数表达式,那么可以根据if()里面的值正确的选择使用函数。

在函数中返回另一个函数

怎么样是一个函数表达式

任何时候,只要函数被当作值来使用,它就是一个函数表达式。

10.12 递归

image.png

形式

递归函数通常的形式是一个函数通过名称调用自己

改变函数名

递归失败

将函数名赋值给一个变量,使用这个变量递归,之前的函数名赋值为空值。使用之后的变量来进行递归,但是这样会导致无法成功递归。

arguments.cellee

arguments.callee 就是一个指向正在执行的函数的指针。如果将函数名赋值给其他变量,使用这个变量进行递归的时候,内部可以使用arguments.cellee。这样就可以保证递归的成功。

注意 在严格模式下运行的代码是不能访问 arguments.callee 的,因为访问会出错。

命名函数表达式

将函数使用括号包括起来然后赋值给一个函数。

相关推荐

手机为何会爆炸?
365bet平台网址

手机为何会爆炸?

📅 08-13 👁️ 1650
和平精英一天最多能玩多久
365提款一直在审核

和平精英一天最多能玩多久

📅 08-12 👁️ 3780
Intel Core i3-4160点评
365bet平台网址

Intel Core i3-4160点评

📅 08-21 👁️ 6607
问道推广人积分怎么算的
365bet平台网址

问道推广人积分怎么算的

📅 10-06 👁️ 6378
快时尚服装店多久盘点一次,服装快时尚是什么意思
365提款一直在审核

快时尚服装店多久盘点一次,服装快时尚是什么意思

📅 07-09 👁️ 9596
如何使用 FileZilla 上传文件到服务器
365bet平台网址

如何使用 FileZilla 上传文件到服务器

📅 10-01 👁️ 4774
《黑神话悟空》磬槌获得方法介绍
365bet平台网址

《黑神话悟空》磬槌获得方法介绍

📅 08-19 👁️ 4075
王者创了几年了?
365提款一直在审核

王者创了几年了?

📅 07-17 👁️ 3660
乌龟是什么类的动物?它们在生态系统中扮演什么角色?
365提款一直在审核

乌龟是什么类的动物?它们在生态系统中扮演什么角色?

📅 10-05 👁️ 7877