函数的创建
1.构造函数创建函数
var fn = nwe Function(JS语句...);
js代码会在调用时被执行:
fn();
但是在实际开发中很少使用构造函数来创建一个函数对象
2.使用函数声明来创建一个函数
function fn(形参1,形参2,....,形参N){
js语句...
}
js代码也是在调用时执行:fn(实参1,实参2,...,实参n);
形参和实参是根据需求来决定是否添加
3.使用函数表达式来创建一个函数
var fn = function(形参1,形参2,....,形参N){
js语句...;
}
js代码是在调用时执行:fn(实参1,实参2,...,实参n); 形参和实参是根据需求来决定是否添加。
函数表达式创建的函数还可以通过:在末尾加一个括号,使函数无需调用而立即执行。但是
函数声明创建的函数不能使用这种方式执行。
var fn = function(){js代码...}(); 函数无需调用立即执行
当然这样创建的函数也无法通过函数调用 fn(); 的方法来执行了。
另外:还有一种立即执行函数,无需指定函数名,并且函数在定义之后,无需调用就立即执行,该函数往往只会被执行一次。
立即执行函数的两种常见写法:
(function(){js语句...}()); 和 ( function(){…} )(); 当然()中也可以传入参数。
例如:
(function(a,b){
console.log(a+b);
}(2,3))
会直接输出值:5。
建议使用声明函数的方式来创建一个函数。该方式创建的函数不仅代码简洁,而且函数声明也会被提前,会在所有代码执行之前就被创建,所以可以在函数声明之前就调用该函数。
函数的形参
- 可以在函数的()中指定一个或多个形参,形参之间用 , 隔开,声明形参就相当于在函数中声明了对应的变量
- 在调用时,在()中传入实参,实际上时给函数中的形参赋值。
*注意:
- 调用函数时,解析器不会检查实参的数据类型。
- 调用函数时,解析器也不会检查实参的数量,多余的参数不会被赋值。
- 如果实参的数量少于形参,没有被赋值的形参的值为undefined。
- 函数的实参可以任意数据类型。