到现在还有人不知道JavaScript匿名函数嘛

简介: 到现在还有人不知道JavaScript匿名函数嘛

📜个人简介

⭐️ 个人主页: 微风洋洋🙋‍♂️
🍑 博客领域:编程基础,后端
🍅 写作风格:干货,干货,还是tmd的干货
🌸 精选专栏【JavaScript】
🚀 支持洋锅:点赞👍、收藏⭐、留言💬

好久不见,甚是想念!
大家好!我是微风洋洋
芜湖,起飞🚀

不会吧,不会吧,到现在还有人不知道JavaScript匿名函数嘛?

那今天洋锅就带你长长见识,看完这篇文章直接向舍友发出灵魂三问:你知道什么是匿名函数吗?它是干什么的?怎么用呢?

@TOC

一、变量的作用域

思考:声明变量后就可以在任意位置使用该变量嘛?

回答:不是。

举例:函数内var关键字声明的变量,不能在函数外访问。

在这里插入图片描述


🔺总结:变量的使用是有作用域范围的。

作用域划分:全局作用域、函数作用域和块级作用域(ES6提供的)。

不同作用域对应的变量:全局变量、局部变量、块级变量(ES6提供的)。

在这里插入图片描述


⭐️全局变量:不在任何函数内声明的变量(显示定义)或在函数内省略var声明变量(隐式定义)都称为全局变量。

作用范围:它在同一个页面文件中的所有脚本内都可以使用。
在这里插入图片描述


⭐️局部变量:在函数体内利用var关键字定义的变量称为局部变量,它仅在该函数体内有效。
在这里插入图片描述

⭐️块级变量:ES6提供的let关键字声明的变量称为块级变量,仅在“{}”中间有效,如if、for或while语句等。


💡垃圾回收机制

在JavaScript中,局部变量只有在函数的执行过程中存在,而在这个过程中会为局部变量在(栈或堆)内存上分配相应的空间,以存储它们的值,然后在函数中使用这些变量,直到函数结束。而一旦函数执行结束,局部变量就没有存在必要了,此时JavaScript就会通过垃圾回收机制自动释放它们所占用的内存空间。

在开发中若要保留局部变量的值,可以通过以下两种方式实现:

在这里插入图片描述



二、匿名函数

概念:所谓函数表达式指的是将声明的函数赋值给一个变量,通过变量完成函数的调用和参数的传递,它也是JavaScript中另一种实现自定义函数的方式。


🌴函数表达式

在这里插入图片描述


🌴匿名函数

概念:匿名函数指的是没有函数名称的函数。

作用:可以有效的避免全局变量的污染以及函数名的冲突问题。

说明:既是函数表达式的另一种表示形式,又可通过函数声明的方式实现调用。

在这里插入图片描述


🌴箭头函数

概念: ES6中引入了一种新的语法编写匿名函数,我们称之为箭头函数。

特点:一个箭头函数表达式的语法比一个函数表达式更短。

在这里插入图片描述

在这里插入图片描述



三、嵌套与递归

🌴函数嵌套与作用域链

什么是嵌套函数:是在一个函数内部存在另一个函数的声明。

特点:内层函数只能在外层函数作用域内执行,在内层函数执行的过程中,若需要引入某个变量,首先会在当前作用域中寻找,若未找到,则继续向上一层级的作用域中寻找,直到全局作用域,我们称这种链式的查询关系为作用域链。

在这里插入图片描述


🌴递归调用

概念:递归调用是函数嵌套调用中一种特殊的调用。它指的是一个函数在其函数体内调用自身的过程,这种函数称为递归函数。

下面以计算阶乘为例进行演示。

在这里插入图片描述

📌 注意

递归调用虽然在遍历维数不固定的多维数组时非常合适,但它占用的内存和资源比较多,同时难以实现和维护,因此在开发中要慎重使用函数的递归调用。


🌴案例

求斐波那契数列第N项的值

了解什么是斐波那契数列

斐波那契数列又称黄金分割数列,如 “1, 1, 2, 3, 5, 8, 13, 21……”。

找规律: 这个数列从第3项开始,每一项都等于前两项之和。

代码实现思路

  • 小于0,给出错误提示信息。
  • 等于0,返回0。
  • 等于1,返回1。
  • 大于1,按找到的规律并利用函数递归调用实现。
授之于鱼不如授之以渔,渔给你了看你能不能得到鱼了🌸


如果觉得这篇文章对你有一丢丢启发的话,不妨 点赞👍、收藏⭐、留言💬支持一下,你的支持将是我继续创作的最大动力❤️❤️❤️

由于作者水平有限,如有错误和不准确之处在所难免,本人也很想知道这些错误,恳望读者批评指正!

if (学会了){
点个赞,给个好评,我祝福你学啥会啥;
}else{
收藏一下以后慢慢学,我相信你能学会;
}
相关文章
|
JavaScript 前端开发
js 匿名函数 中无法正常进行 异常捕获
js 匿名函数 中无法正常进行 异常捕获
47 1
|
JavaScript 前端开发
认识JavaScript中的闭包和匿名函数
认识JavaScript中的闭包和匿名函数
83 0
|
前端开发 JavaScript Serverless
前端祖传三件套JavaScript的函数之匿名函数
在JavaScript中,函数是实现各种功能和业务逻辑的基本手段。除了常规的函数声明和函数表达式外,JavaScript还支持匿名函数的定义方式。在这篇文章中,我们将介绍JavaScript中的匿名函数,以及其使用方法和注意事项
115 0
|
JavaScript 前端开发
JavaScript函数篇之ES6箭头函数与匿名函数
对于箭头函数,this 关键字始终表示定义箭头函数的对象。
141 0
|
JavaScript 前端开发
重学JavaScript之匿名函数
重学JavaScript之匿名函数
|
JavaScript 前端开发
javascript匿名函数
javascript匿名函数
|
JavaScript 前端开发 PHP
学习javaScript必知必会(1)~js介绍、函数、匿名函数、自调用函数、不定长参数
学习javaScript必知必会(1)~js介绍、函数、匿名函数、自调用函数、不定长参数
193 0
|
JavaScript 前端开发
理解下JavaScript中的匿名函数、自执行匿名函数
本文目录 1. 函数也是一种类型 2. 匿名函数 3. 自执行匿名函数 4. 小结
169 0
|
JavaScript 前端开发 程序员
好程序员前端教程之JavaScript闭包和匿名函数的关系详解
好程序员前端教程之JavaScript闭包和匿名函数的关系详解本文讲的是关于JavaScript闭包和匿名函数两者之间的关系,从匿名函数概念到立即执行函数,最后到闭包。下面一起来看看文章分析,希望你会喜欢。
1101 0