JavaScript函数
JavaScript 函数是被设计为执行特定任务的代码块。 JavaScript 函数会在某代码调用它时被执行。
函数语法
JavaScript 函数通过 function 关键词进行定义,其后是函数名和括号 ()。 函数名可包含字母、数字、下划线和美元符号(规则与变量名相同)。 圆括号可包括由逗号分隔的参数: (参数 1, 参数 2, …) 由函数执行的代码被放置在花括号中:{}
代码语言:javascript复制function name(参数 1, 参数 2, 参数 3) {
要执行的代码
}
函数参数(Function parameters)是在函数定义中所列的名称。 函数参数(Function arguments)是当调用函数时由函数接收的真实的值。 在函数中,参数是局部变量。 在其他编程语言中,函数近似程序(Procedure)或子程序(Subroutine)。
函数调用
调用函数时,按顺序传入参数即可:
代码语言:javascript复制abs(10); // 返回10
abs(-9); // 返回9
由于JavaScript允许传入任意个参数而不影响调用,因此传入的参数比定义的参数多也没有问题,虽然函数内部并不需要这些参数:
代码语言:javascript复制abs(10, 'blablabla'); // 返回10
abs(-9, 'haha', 'hehe', null); // 返回9
传入的参数比定义的少也没有问题:
代码语言:javascript复制abs(); // 返回NaN
此时abs(x)函数的参数x将收到undefined,计算结果为NaN。 要避免收到undefined,可以对参数进行检查:
代码语言:javascript复制function abs(x) {
if (typeof x !== 'number') {
throw 'Not a number';
}
if (x >= 0) {
return x;
} else {
return -x;
}
}
函数作为方法调用
在 JavaScript 中你可以将函数定义为对象的方法。 以下实例创建了一个对象 (myObject), 对象有两个属性 (firstName 和 lastName), 及一个方法 (fullName): 实例
代码语言:javascript复制var myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName " " this.lastName;
}
}
myObject.fullName(); // 返回 "John Doe"
使用构造函数调用函数
如果函数调用前使用了 new 关键字, 则是调用了构造函数。 这看起来就像创建了新的函数,但实际上 JavaScript 函数是重新创建的对象: 实例
代码语言:javascript复制// 构造函数:
function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
// This creates a new object
var x = new myFunction("John","Doe");
x.firstName; // 返回 "John"