本篇文章给大家带来了关于javascript的相关知识 , 其中主要介绍了匿名函数的相关问题 , 还包括了嵌套与递归的相关内容 , 希望对大家有帮助 。
文章插图
【相关推荐:javascript视频教程】
一、变量的作用域思考:声明变量后就可以在任意位置使用该变量嘛?
回答:不是 。
举例:函数内var关键字声明的变量 , 不能在函数外访问 。
文章插图
总结:变量的使用是有作用域范围的 。
作用域划分:全局作用域、函数作用域和块级作用域(ES6提供的) 。
不同作用域对应的变量:全局变量、局部变量、块级变量(ES6提供的) 。
文章插图
全局变量:不在任何函数内声明的变量(显示定义)或在函数内省略var声明变量(隐式定义)都称为全局变量 。
作用范围:它在同一个页面文件中的所有脚本内都可以使用 。
文章插图
局部变量:在函数体内利用var关键字定义的变量称为局部变量 , 它仅在该函数体内有效 。
文章插图
块级变量:ES6提供的let关键字声明的变量称为块级变量 , 仅在“{}”中间有效 , 如if、for或while语句等 。
垃圾回收机制
在JavaScript中 , 局部变量只有在函数的执行过程中存在 , 而在这个过程中会为局部变量在(栈或堆)内存上分配相应的空间 , 以存储它们的值 , 然后在函数中使用这些变量 , 直到函数结束 。 而一旦函数执行结束 , 局部变量就没有存在必要了 , 此时JavaScript就会通过垃圾回收机制自动释放它们所占用的内存空间 。
在开发中若要保留局部变量的值 , 可以通过以下两种方式实现:
文章插图
二、匿名函数概念:所谓函数表达式指的是将声明的函数赋值给一个变量 , 通过变量完成函数的调用和参数的传递 , 它也是JavaScript中另一种实现自定义函数的方式 。
函数表达式
文章插图
匿名函数概念:匿名函数指的是没有函数名称的函数 。
作用:可以有效的避免全局变量的污染以及函数名的冲突问题 。
说明:既是函数表达式的另一种表示形式 , 又可通过函数声明的方式实现调用 。
文章插图
箭头函数概念: ES6中引入了一种新的语法编写匿名函数 , 我们称之为箭头函数 。
特点:一个箭头函数表达式的语法比一个函数表达式更短 。
文章插图
文章插图
三、嵌套与递归函数嵌套与作用域链【归纳整理JavaScript匿名函数知识点】什么是嵌套函数:是在一个函数内部存在另一个函数的声明 。
特点:内层函数只能在外层函数作用域内执行 , 在内层函数执行的过程中 , 若需要引入某个变量 , 首先会在当前作用域中寻找 , 若未找到 , 则继续向上一层级的作用域中寻找 , 直到全局作用域 , 我们称这种链式的查询关系为作用域链 。
文章插图
递归调用概念:递归调用是函数嵌套调用中一种特殊的调用 。 它指的是一个函数在其函数体内调用自身的过程 , 这种函数称为递归函数 。
下面以计算阶乘为例进行演示 。
文章插图
注意
递归调用虽然在遍历维数不固定的多维数组时非常合适 , 但它占用的内存和资源比较多 , 同时难以实现和维护 , 因此在开发中要慎重使用函数的递归调用 。
案例求斐波那契数列第N项的值
了解什么是斐波那契数列
斐波那契数列又称黄金分割数列 , 如 “1, 1, 2, 3, 5, 8, 13, 21……” 。
找规律: 这个数列从第3项开始 , 每一项都等于前两项之和 。
推荐阅读
- 价格促销文案[整理版]
- 表格数据整理很麻烦?Excel筛选数据超精准
- JavaScript实例详解之HTML元素操作
- javascript中const的含义是什么
- 深入了解JavaScript的内存与性能问题
- 带你学习JavaScript中的File API、Streams API和Web Cryptography API
- 完全掌握JavaScript之DOM与BOM的区别与用法
- 引用javascript文件要不要包含在script标签中
- 淘宝详情页文案思路整理及实操技巧分享
- 6-11 再学JavaScript ES全版本语法大全