您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery | 小程序 |

分享5个JS

51自学网 2022-02-21 13:36:23
  javascript

1、前言

在JavaScript中,函数实际上也是一个数据,也就是说函数也可以赋值给一个变量。本篇文章就来介绍一些JavaScript中的高阶函数的用法。

2、递归

所谓的递归,就是指函数自己调用自己;用一个故事来说呢就是:从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?“从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?‘从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……'” 。

从某种意义上说,递归近似于循环。两者都重复执行相同的代码,并且两者都需要一个终止条件,以避免无限循环或者无限递归。

递归所需要的必要条件如下:

  • 子问题跟原始问题一样,且更为简单
  • 必须有个出口

在JavaScript中想要递归调用存在两种方式

  • 通过使用函数名实现
  • 通过使用arguments.callee属性实现。

如下代码展示了简单的递归:

var v = 1 // 出口条件function fun() {  console.log('第' + v + '次调用函数')  v++  if (v <= 3) {    fun()  }}fun()

执行结果如下

第1次调用函数
第2次调用函数
第3次调用函数

3、回调函数

然函数与任何可以被赋值给变量的数据是相同的,那么它当然可以像其他数据那样被定义、删除、拷贝,以及当成参数传递给其他函数。

当一个函数作为参数传递给另一个函数时,作为参数的函数被称之为回调函数。作为使用回调函数的函数称为目标函数(外层函数)

示例代码如下所示:

// 定义一个函数,这个函数有两个函数类型的参数,然后分别执行那两个函数,并返回它们的和。function sum(a, b) {  // 目标函数  return a() + b()}function one() {  // 回调函数  return 1}function two() {  // 回调函数  return 2}console.log(sum(one, two)) // 3

代码执行流程如下:

当执行sum函数时,传入两个实参,在sum函数中,会将两个实参作为函数执行,并将返回值计算并返回。

3.1匿名回调函数

所谓匿名回调函数,就是目标函数中的参数是没有名称的函数,将上一段代码修改为使用匿名回调函数

// 定义一个函数,这个函数有两个函数类型的参数,然后分别执行那两个函数,并返回它们的和。function sum(a, b) {  // 目标函数  return a() + b()}console.log(  sum(    function () {      // 匿名回调函数      return 1    },    function () {      //  匿名回调函数      return 2    },  ),) // 3

3.2带参数的回调函数

回调函数是可以增加参数的,示例代码如下:

function multiplyByTwo(list, callback) {  list.forEach(function (v, i) {    callback(v * 2, i)  })}var list = [1, 2, 3]multiplyByTwo(list, function (v, i) {  list[i] = v})console.log(list) // [ 2, 4, 6 ]

3.3回调函数的优缺点

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。