函数体结构:function functionName(params) { statements }
,在代码中创建一个函数体我们称为 函数声明
functionName
可以是任何合理的标识符(ECMA
保留的关键字和保留字除外)
调用函数体:functionName(params)
,调用函数体称为 函数调用
声明函数时接收的参数称为 “形参”,调用函数体时传递的参数称为 “实参”,实参的个数并不拘束于形参的个数
在函数内部 return
关键字后跟随的表达式结果将作为函数的返回值,函数内部 return
语句后面的代码将被忽略
在函数内部可以通过 arguments
访问到函数调用传递过来的所有实参(包括无形参接收的实参),arguments
的本质是一个类似数组的集合,存在 length
属性,可通过索引获取集合内元素,但并未继承 Array.prototype
上的方法,也因此衍生出经典的写法:Array.prototype.map.call(arguments, callback)
不存在函数重载:定义两个名字相同的函数,则该名字只属于后定义的函数
而在其他语言中,可以为一个函数编写两个定义,只要这两个定义的签名(接受的参数的类型和数量)不同即可。