函数允许我们封装一系列代码来完成特定任务。当想要完成某一任务时,只需要调用相应的代码即可。方法(method)一般为定义在对象中的函数。浏览器为我们提供了很多内置方法,我们不需要编写代码,只需要调用方法即可完成特定功能。
var myArray = ['I', 'love', 'chocolate', 'frogs']; var madeAString = myArray.join(' '); var myNumber = Math.random()函数由function关键字声明,后面紧跟函数名,函数名后面为形参列表,列表后大括号括起来的内容为函数体。 也可以将一个匿名函数(没有函数名的函数)赋值给一个函数变量, 这种方式称为函数表达式。 解析器在向执行环境中加载数据时,会率先读取函数声明;并使其在执行任何代码之前可用;当执行器执行到函数表达式的代码的时候才会真正的解释执行。
//表示方法 //函数声明 function 函数名(形参列表){ //函数体 } //函数表达式 var 函数名 = function(形参列表){ //函数体 }只有在函数内部才能访问的属性。
arguments 是类数组对象,包含着传入函数中的实际参数,arguments对象还有一个callee的属 性,用来指向拥有这个arguments对象的函数this 指向的是函数赖以执行的环境对象立即执行函数 IIFE (function(){})()函数声明的提升 函数声明提升到最顶部,变量声明提升到顶部局部变量与全局变量 函数内部使用var修饰的变量,是函数内部的局部变量。函数声明好之后并不会直接运行,需要进行调用才能运行。 调用函数:
函数名(实参列表);函数名.call(执行环境对象,实参列表);函数名.apply(执行环境对象,实参列表数组);函数名.bind(执行环境对象)(实参列表);函数名.bind(执行环境对象,实参列表)();函数本质上也是一种对象,拥有属性和方法。
length 表示函数希望接受的命名参数的个数,即形参的个数。apply() 可以调用当前函数,并可以指定其执行环境对象call() 可以调用当前函数,并可以指定其执行环境对象函数本质上是一种对象,可以将其当做普通对象来使用。
//作为参数 //由于函数名本身就是变量,所以函数可以当做值来使用(参数,返回值)。 function callOther(fun,args){ return fun(args); } function show(msg){ alert(msg); } //作为返回值() function getFunction(){ return function(){ alert(hello); } }