JavaScript之第四章 函数

目录

1.初识函数

【函数定义】

【内置函数】

【自定义函数】

【函数格式】

【无参函数】

【有参函数】

【函数的返回值】

【获取函数调动时,传递的所有实参】

2.函数进阶

【函数表达式】

【匿名函数】

【箭头函数】

3.回调函数

4.函数作用域

5.定时器函数

6.函数嵌套与作用域

7.闭包函数

8.递归函数


1.初识函数

【函数定义】

函数用于封装完成一段特定功能的代码

相当于将一条或多条语句组成的代码块封装起来。

用户在使用时只需要关心参数和返回值,就能完成特定的功能。

【内置函数】

isNaN是判断内容是否为非数字,非数字类型时取值为true,数字类型时取值为false

Number()可以将字符串类型转化为数字类型

parseInt()将小数点前面的内容转化为数字类型

【自定义函数】

可以提高代码的复用性,降低程序维护的难度

【函数格式】

语法:

function 函数名([参数1,参数2...]){

     函数体

}

function name(params) {

}

function 指这是一个函数语句; name是函数名 ; params是函数参数; {}内放函数的具体功能

【无参函数】

函数封装

【有参函数】

需求:定义一个函数total,调用函数是传入price价钱、num数量,就可以计算并在页面上打印函数的总价all

【函数的返回值】

函数的返回值是指在函数调用后获得的数据,这个数据需要通过return关键字返回,让函数外可以拿到

函数total是在函数内部打印乘积,每次调用total函数就会执行一次打印命令

函数total1是在函数内部生成一个新的数值并通过return返回,在函数外拿到return返回的数据并打印

需求:定义一个函数,maxNum,求出任意两数的最大值

需求:定义一个函数getSum,可以求任意数组中每个项的和

需求:判断数组中是不是所有元素都是正数,不是则返回false

需求:找出数组元素为10的下标,有则返回该下标,没有则返回-1

【获取函数调动时,传递的所有实参】

扩展运算符(...)

argument对象

在开发时,如果不确定参的个数,可以不设置形参

在函数体中直接通过argument对象获取函数时调用时传递的形参

需求:

1.通过argument对象获取所有实际参数

2.对所有实参进行求和

2.函数进阶

【函数表达式】

函数表达式是指将函数值赋给变量的表达式

定义了函数表达式之后,不能再通过函数名调用函数

需要通过变量名调用函数

【匿名函数】

当使用函数表达式时,可以删除函数的名字

【箭头函数】

删除function关键字,在参数()和函数体{}之间放上=>

当函数体只有一句话时,可以省略return返回值和大括号

当函数只有一个参数时,可以省略小括号

3.回调函数

回调函数就是在a中,传入一个函数b作为参数,参数函数b就是回调函数。

需求:调用cal函数,完成num1和num2的取模运算/除法运算/

4.函数作用域

全局作用域:全局变量拥有全局作用域

全局变量:在函数体外声明的变量或在函数体内省略var关键字声明的变量

局部作用域:局部变量或者是函数变量拥有局部作用域

局部变量:在函数体内利用var关键字声明的变量

块级作用域:被块级变量所拥有,在分支语句或循环大括号中定义的变量,一般一个花括号{}为一个代码块

 块级变量:let关键字声明的变量

5.定时器函数

定时器函数是异步代码,需要等全部同步代码执行完后执行

语法:

setTimeout(()=>{},timeout);

用来设置某个函数在多少毫秒之后执行

setInterval(()=>{},interval);

用来设置某个函数在多少时间间隔后反复执行

6.函数嵌套与作用域

变量访问规则:就近原则(处于同一作用域)

当在一个作用于中访问变量时,首先看当前作用域有没有声明

如果有则访问当前作用域的变量,如果没有则向上层作用域查找

直到达到顶层作用域没有变量声明时,则程序报错

7.闭包函数

闭包(close)函数:是一种代码形式,内部函数访问外部函数的局部变量

闭包的作用:将变量以函数的形式保护起来,解决变量污染问题

举例:

js函数outer中有一个函数inner,函数inner访问了函数outer定义的局部变量demo,此时就产生了闭包,变量所在的函数就是闭包函数,在这里,outer是闭包函数

8.递归函数

递归函数,一个函数间接或直接地调用自身

需求:设置一个getSum函数

写法一:

写法二:

写法三:

递归过程

getSum = 5

return 5 + getSum2(4)

return 5 + 4 + getSum2(3)

return 5 + 4 + 3 + getSum2(2)

return 5 + 4 + 3 + 2 + getSum2(1)

eturn 5 + 4 + 3 + 2 + 1 = 15

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值