初识函数
ECMAScript中的函数使用 function 关键字来声明,后跟一组参数以及函数体。
|
|
函数还有一个属性,就是可以return;ECMAScript中函数在定义的时候,不要求函数是否返回一个值,但是每个函数都有return的权利;任何函数在任何时候都可以通过return语句返回的值来实现把值返回给外部变量。
|
|
函数的返回值只能通过return来返回,除了return以外,没有任何声明可以表示返回值,无论return在哪里,只要有执行了return同一条的代码后,函数立即停止,并且立即退出,因此位于return语句之后的人和代码都永远不会执行;
return语句可以不带任何返回值,这种情况下,函数返回值是undefined;这种写法,一般用在需要提前停止函数又不需要返回值的情况下。
函数的定义
- function语句的定义方法
- 函数直接量的定义方法
- 构造函数的定义方法
|
|
函数的重载
ECMAScript 函数不能实现重载,ECMAScript 没有函数签名,因为其参数是由包含0 或者多个值的数组来表示的。如果在 ECMAScript 中定义了两个名字相同的参数,则该名字只属于后定义的函数。
|
|
函数的调用
直接调用:函数名(实参列表)
|
|
在链接中调用
|
|
在事件中调用
|
|
递归调用
在函数内部调用函数自身
|
|
arguments对象
功能
存放实参的参数列表
|
|
argutments 在普通模式里,可以在函数内部修改函数的值;在严格模式下,函数内部不能修改argument的值,即使修改了,操作也是无效的;其次重写arguments值会导致语法错误,代码不执行;
特性
仅能在函数体内使用
|
|
函数声明时自动初始化
属性
length:获取函数实参的长度
|
|
this关键字的指向
- this:指向当前操作对象;
- callee:指向正在执行函数的指针;
函数表达式
匿名函数
创建一个函数并把它赋值给变量,这种情况下创建的函数叫做匿名函数。
|
|
|
|
函数闭包
闭包是指有权访问另一个 函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数内部创建另一个函数。
|
|
借助闭包,可以封装一个私有变量
|
|
闭包还可以把多参数的函数变成单参数的函数。
|
|
箭头函数
ES6标准新增了一种新的函数:Arrow Function(箭头函数)。
|
|
上面的箭头函数相当于
|
|
使用
|
|
高阶函数
JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。一个最简单的高阶函数:
|
|