JavaScript函数详解
JavaScript 函数是执行特定任务的代码块,可以通过该函数调用来执行特定操作。在 JavaScript 中函数是一个对象。函数的名称被称为标识符。在函数调用时,函数的参数将作为实参传递给函数。
函数定义
函数声明
函数可以通过函数声明来定义:
function functionName(parameters) {
// Code to be executed
}
此处 functionName
是函数的名称,parameters
是可选的参数列表,可以使用逗号分隔多个参数。
示例:
function greet(name) {
console.log("Hello, " + name);
}
函数表达式
函数也可以使用函数表达式定义:
var functionName = function(parameters) {
// Code to be executed
}
提示:使用的变量名存储函数表达式的结果,这些结果称为匿名函数表达式。
示例:
var greet = function(name) {
console.log("Hello, " + name);
};
Function() 构造函数
函数也可以通过 Function()
构造函数定义:
var functionName = new Function("parameter1", "parameter2", "parameter3", "code");
其中参数是可选的,最后一个参数是函数体代码。
示例:
var greet = new Function("name", "console.log('Hello, ' + name);");
函数调用
调用函数可以使用函数名称和传递的实参数量来执行函数。
示例:
greet("Max");
结果将输出:
Hello, Max
函数参数
函数的参数是固定的或可变的。固定参数的函数将始终接受相同数量的参数。可变函数将使用类似数组的对象作为其参数列表。
固定参数
固定参数的函数可以使用下面的语法定义:
function functionName(parameter1, parameter2, parameter3) {
// Code to be executed
}
在调用函数时,必须传递与函数参数数量相同的实参:
functionName(argument1, argument2, argument3); // argument1 corresponds to parameter1, argument2 to parameter2, and so on
示例:
function calculatePrice(price, tax) {
var result = price + price * tax / 100;
return result;
}
calculatePrice(100, 5); // 105
参数默认值
ES6 引入了默认参数,允许在函数参数列表中定义默认值。如果未提供实参,则使用默认值。
function functionName(parameter1 = defaultValue1, parameter2 = defaultValue2, parameter3 = defaultValue3) {
// Code to be executed
}
示例:
function greet(name = "guest") {
console.log("Hello, " + name);
}
greet(); // Hello, guest
greet("Max"); // Hello, Max
可变参数
JavaScript 函数定义中的 arguments
对象是一个类似数组的对象,可以用于容纳可变数量的参数。
function myFunction() {
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
示例:
myFunction("Hello", "World", "!");
结果将输出:
Hello
World
!
函数作用域
在 JavaScript 中,变量的作用域有全局作用域、函数作用域和块级作用域。
全局作用域
在 JavaScript 中,如果变量定义在函数外部,则该变量是全局变量,可以在代码的任何位置使用它。
var globalVariable = 42;
function myFunction() {
console.log(globalVariable);
}
myFunction(); // 42
函数作用域
在 JavaScript 中,如果变量定义在函数内部,则该变量是局部变量,只能在函数内部使用。
function myFunction() {
var localVariable = 42;
console.log(localVariable);
}
myFunction(); // 42
console.log(localVariable); // ReferenceError: localVariable is not defined
块级作用域
ES6 引入了块级作用域。在块级作用域内定义的变量只在该块内有效。
var globalVariable = 42;
function myFunction() {
var localVariable = 42;
if (true) {
let blockVariable = 42;
console.log(blockVariable);
}
console.log(localVariable);
}
myFunction(); // 42 42
console.log(globalVariable); // 42
console.log(localVariable); // ReferenceError: localVariable is not defined
console.log(blockVariable); // ReferenceError: blockVariable is not defined
函数返回值
函数可以返回一个值或不返回任何值。如果函数返回了值,可以使用 return
关键字。
返回值
function functionName(parameters) {
// Code to be executed
return value;
}
返回值可以是任何 JavaScript 类型。
示例:
function addNumber(a, b) {
return a + b;
}
console.log(addNumber(1, 2)); // 3
不带返回值
如果函数没有返回值,也可以省略 return
关键字。
function functionName(parameters) {
// Code to be executed
}
示例:
function greet(name) {
console.log("Hello, " + name);
}
greet("Max"); // Hello, Max
总结
JavaScript 函数是执行特定任务的代码块,可以通过该函数调用来执行特定操作。函数定义可以使用函数声明、函数表达式和 Function()
构造函数。函数调用可以使用函数名称和传递的实参数量来执行函数。函数参数可以是固定的或可变的,并且可以有默认值。在 JavaScript 中,变量的作用域有全局作用域、函数作用域和块级作用域。函数可以返回一个值或不返回任何值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript函数详解 - Python技术站