1、JS函数概念和定义
-
概念
通过函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行,在ECMAScritpt中的函数使用function关键字来声明,后跟一组参数和函数体。 -
定义
function functionName(arg0, arg1, ..., argN){
statements
}
函数声明和函数表达式
// 函数声明
function 函数名() {
// 函数体
}
// 函数表达式
var fn = function () {
// 函数体
}
2、函数参数
// 函数内部是一个封闭的环境,可以通过参数的方式,把外部的值传递给函数内部
// 带参数的函数声明
function 函数名(形参1, 形参2, 形参3...) {
// 函数体
}
// 带参数的函数调用
函数名(实参1, 实参2, 实参3);
形参1 = 实参1
形参2 = 实参2
3、函数返回值
//声明一个带返回值的函数
function 函数名(形参1, 形参2, 形参3...) {
//函数体
return 返回值;
}
//可以通过变量来接收这个返回值
var 变量 = 函数名(实参1, 实参2, 实参3...);
4、函数调用
// 调用语法: 函数名();
// 声明函数
function sayHi() {
console.log("Hello function!");
}
// 调用函数
sayHi();
5、函数其它
- 5.1 函数内置属性arguments
所有函数都内置一个arguments对象,arguments对象中存储了传递的所有的实参,是一个伪数组,可以进行遍历。
function test(){
for (var index = 0; index < this.arguments.length; index++) {
console.log(this.arguments[index]);
}
}
- 5.2 常见函数形式
// 匿名函数
var func2 = function(){
console.log("匿名函数。。。");
}
// 命名函数
function func1(){
console.log("命名函数。。。");
}
// 函数自调用
(function(){
console.log("执行一次");
})();
// 函数可以作为参数使用
function f1(){
console.log("函数作为参数使用的方式");
}
function f2(fn){
console.log("调用作为参数的函数");
fn();
}
f2(f1);
// 函数作为返回值使用
function ff1(){
console.log("ff1");
return function(){
console.log("作为返回值的函数");
};
}
function ff2(fn){
fn();
}
ff2(ff1());