1.函数表达式
表达式---有运算数据和运算符号组成的运算的式子。
表达式除过+、-、*、/ / >、<、= / || && !/ typeof 这些,
还有对象调用属性/对象调用方法都是表达式。
函数表达式---将函数的创建赋值给变量,函数没有名称,此时变量名称就成了函数名称。
var myfun=function(){} //函数表达式
在使用的时候直接用变量名称表示了函数/函数的结果。
2.new Function()--通过new Function(函数的参数,函数体中的代码)
3.函数提升
之前都是先创建出函数,然后在调用创建的函数
函数提升---先调用没有创建的函数,然后在创建函数,
在执行的时候创建函数会提升到调用函数之前执行。
4.自调用函数---将需要被调用的函数用“()”包围,然后最后跟随一个“()”表示调用。
5.函数可作为一个值使用
6.函数是对象
在 JavaScript 中使用 typeof 操作符判断函数类型将返回 "function" 。但是JavaScript 函数描述为一个对象更加准确。JavaScript 函数有 属性 和 方法。arguments.length 属性返回函数调用过程接收到的参数个数.toString() 方法将函数作为一个字符串返回.
7.函数参数
显式参数(Parameters)--在函数创建的时候,写在"()"中的就是显式参数。
隐式参数(Arguments)---在函数创建的时候,"()"中没有参数定义,调用的时候可以传递参数值,传递的参数值被默认封装到了arguments数组对象
8.函数的调用
1.作为一个函数调用
2.函数作为方法调用
对象中可以包含属性和方法,对象的属性就相当于是变量,对象的方法可以使用函数来创建。
通过对象调用方法的方式来调用函数。
3.使用构造函数调用函数 -- 通过new 来调用函数
4.作为函数方法调用函数
javascript中有专门调用函数的方法
call()与apply()的区别?
call()与apply()的共同之处:
1.都是通过当前函数名称调用
2.call()与apply()的第一个参数是它们的返回值
call()与apply()的不同之处:
call()方法的参数从第二个开始是函数本身所需的参数值,逐一传入。
apply()方法的第二个参数是函数本身所需参数的数组。
两个方法都使用了对象本身作为第一个参数。
两者的区别在于第二个参数:
apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,
而call则作为call的参数传入(从第二个参数开始)。