js 中的函数


前言

函数的学习总结。


一、函数及其两种声明方式

1.1 函数定义

函数:封装一段执行专门任务的代码段。

1.2 函数声明方式

1.2.1 通过 function 关键字进行声明

function 函数名(参数){
                            你要做得事
                     }  通过 function 关键字来声明函数

1.2.2 函数表达式

函数表达式中函数可以有名字,也可以没有名字

var fn = function 函数名(参数){你要做得事}  通过变量的方式来定义函数
var fn = function (参数){你要做得事}  通过变量的方式来定义函数

1.2.3 function 和函数表达式相比较

  1. 这两种定义的方式推荐使用方式一的通过 function 关键字来声明函数。
  2. 这两种方式会有不同的地方
    • function 声明的函数, 在声明提前的时候, 会让整体都提前。
    • 通过 var + 变量 来声明的函数,只会让变量的声明提前。
    • 但是在需要将函数作为一个参数传入的时候(回调函数),推荐使用函数表达式。

二、函数使用注意事项

  • 函数不调用,不执行

  • 函数的调用,函数名()

  • 函数提升

    • 整体提升,使用 function 声明的函数会整体提升,因此可以在 js 中任何地方访问函数。
  • 函数是个纯过程,没有结果

  • return 关键字的使用

    • 如果只有 return, 后面并没有带值,那么执行到 return 就会退出函数运行
    • 如果在 return 的后面跟一个值,那么就会在函数退出的同时,返回一个结果。
  • 匿名函数形式 function(参数){你要做得事} 没有函数名称,也没有通过变量的方式来声明函数

  • 匿名函数也叫函数表达式。函数表达式与函数声明有一些区别,函数声明会进行声明提升,但是函数表达式并不会

  • 函数内部定义的变量称为局部变量,局部变量只能在该函数内部进行访问。函数外部无权访问局部变量。

  • 全局变量可以在脚本内任何地方被访问。

  • 可以在任何地方调用函数,甚至可以在函数的内部调用函数。这是因为函数会提升

  • 函数名和变量名不能重名,因为函数就是一种特殊的变量。调用的时候不知道是调用的函数,还是变量的值了。

  • 全局变量会在页面关闭之后被删除

  • 局部变量会在函数执行完毕之后被删除

  • 关于分号 (;)分号在 js 是用来分隔可执行语句的,因为函数的声明不是可执行语句,所以函数声明的结束没有分号结尾。

三、参数和区分闭包结构

3.1 参数

参数:函数内独有的变量,让函数更灵活,不需要声明。另外,参数是局部变量,只在函数内部有用,在函数外无权调用。

3.1.1 形参和实参

  • 形参:形式上的参数,函数定义的时候
  • 实参:实际的参数,函数调用的时候

3.1.2 形参和实参的联系:

  • 值传递的时候,形参和实参是不同的变量,形参只是将实参的值复制了一份,所以形参值的改变不会影响到实参的值
  • 引用传递的时候,形参复制的是实参的地址,复制的地址并不会改变,因为形参和实参使用的同一个地址,它们指向了同一个对象实体,所以形参的值的改变也会影响到实参的值。

3.1.3 显式参数和隐式参数

  • 显示参数:函数定义的时候的参数
  • 隐式参数:函数调用的时候实际传入的参数。可以使用关键字 arguments 来查看, arguments 是一个类似数组的对象,有角标和长度,可以利用角标访问,但是没有数组的方法

3.2闭包结构

闭包结构外层是父函数,内层是子函数。子函数在父函数内声明的。

  • 如果几个函数都是在同一个作用域声明的,但是在调用的时候,某些函数是在其他函数内部进行调用的,这样的结构不是闭包结构
  • 总之,看函数声明的地方是判断是否是闭包结构的一个好方法

总结

总结了函数声明的两种方式,函数使用注意事项,参数定义和分类,还有判断闭包结构的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值