JavaScript 中的不同类型的函数 JavaScript 中的不同类型的函数

2025-06-09

JavaScript 中的不同类型的函数

JavaScript 中的不同类型的函数

JavaScript 中的不同类型的函数

叶子
照片由Unsplash上的Markus Spiske 拍摄

JavaScript 函数是用于执行特定任务的代码块。

MDN 说:

函数是 JavaScript 的基本构造块之一。函数是一个 JavaScript 过程——一组执行任务或计算值的语句。要使用函数,必须在希望调用它的作用域内进行定义。

当“某物”调用 JavaScript 函数时,该函数就会执行。

例子:

function square(x) {
  return x * x;
}
square(10); // 100
Enter fullscreen mode Exit fullscreen mode

基本语法:

function validFunctionName(parameter) {
  return statement;
}
Enter fullscreen mode Exit fullscreen mode

函数可以有多个参数,也可以没有参数。以下示例中,bark 没有列出任何参数名称,而 power 列出了两个:

bark( )

function bark() {
  return "woof-woof";
}
bark(); //   woof-woof
Enter fullscreen mode Exit fullscreen mode

power( )

function power(base, exponent) {
  let result = 1;
  for(let count = 0; count < exponent; count++) {
    result *= base;
  }
  return result;
}
power(2, 10); // 1024
Enter fullscreen mode Exit fullscreen mode

函数表达式:

函数表达式定义了一个命名函数或匿名函数。匿名函数是没有名称的函数。

var fullName = function(firstName, lastName) {
 return `${firstName} ${lastName}`;
}
fullName("Jamal", "Uddin"); // Jamal Uddin
Enter fullscreen mode Exit fullscreen mode

箭头函数:

箭头函数表达式是编写函数表达式的更简洁的语法。箭头函数不会创建自己的值。

我们可以用多种方式编写箭头函数:

第一的:

它看起来就像一个正则函数表达式,但有箭头(=>)键。

const double = (value) => {
  return value * 2
}
double(10); // 20
Enter fullscreen mode Exit fullscreen mode

第二:

省略 return 关键字

const double2 = value => value * 2;
double2(10); // 20
Enter fullscreen mode Exit fullscreen mode

第三:

如果我们的函数没有参数

const noise = () => console.log("Pling");
noise(); // Pling
Enter fullscreen mode Exit fullscreen mode
或者
const noise2 = _ => console.log("Pling");
noise2(); // Pling
Enter fullscreen mode Exit fullscreen mode

第四:

如果我们有两个或多个参数,则必须使用括号

const addAll = (x, y, z) => x + y + z;

addAll(10, 20, 30); // 60
Enter fullscreen mode Exit fullscreen mode

第五:

我们可以在参数中使用默认值

const multiply = (a = 2, b = 3, c = 1) => a * b * c;
multiply(2, 2, 2); // 8
multiply(2, 2);    // 4
multiply(3);       // 9
multiply();        // 6
Enter fullscreen mode Exit fullscreen mode

JavaScript 对于传递给函数的参数数量非常宽容。如果传递的参数过多,多余的参数会被忽略。如果传递的参数过少,缺少的参数会被赋值为 undefined。

返回:

请记住,return 关键字只能在函数内部使用。让我们看另一个例子。

function returnOnlyOnce(){
  return "Hello";
  return "Goodbye";
}
returnOnlyOnce(); // "Hello"
Enter fullscreen mode Exit fullscreen mode

从这个例子中我们看到,return关键字在一个函数中只能执行一次,一旦执行完,该函数就完成了,不会再执行其他任何代码行。

函数简写方法:

简写方法定义可用于对象字面量和 ES6 类的方法声明中。我们可以使用以下方式定义它们:先使用函数名,然后使用一对括号 (para1, ..., paramN) 中的参数列表,最后使用一对花括号 { ... } 分隔函数主体语句。

以下示例在对象文字中使用简写方法定义:

const fruits = {  
  items: [],
  add(...items) {
    this.items.push(...items);
  },
  get(index) {
    return this.items[index];
  }
};
fruits.add('mango', 'banana', 'guava');  
fruits.get(1); // banana
Enter fullscreen mode Exit fullscreen mode

add()水果对象中的和get()方法使用短方法定义。这些方法的调用方式与通常一样:fruits.add(...)fruits.get(...)

生成器函数:

ES6 引入了一种新的函数和迭代器操作方式,即生成器(或称生成器函数)。生成器是一个可以中途停止,然后从停止处继续执行的函数。简而言之,生成器看起来像一个函数,但其​​行为却像一个迭代器。

注意:async/await 基于生成器。点击此处了解更多信息。

例子:

function * generatorFunction() { 
  yield 'Hello, ';
console.log('I will be printed after the pause');  
  yield 'World!';
}
const generatorObject = generatorFunction();
console.log(generatorObject.next().value);
console.log(generatorObject.next().value);
console.log(generatorObject.next().value);
// output should be following below.
// Hello, 
// I will be printed after the pause
// World!
// undefined
Enter fullscreen mode Exit fullscreen mode

函数与:new Function

Function 构造函数创建一个新的 Function 对象。

var sum = new Function('a', 'b', 'return a + b');
console.log(sum(2, 6)); // 8
Enter fullscreen mode Exit fullscreen mode

真相来源:

PS:英语不是我的母语,这是我的第一篇英文文章,所以如果您发现任何错误,请原谅我,也请鼓励我写更多文章。

祝您编程愉快!:)

我是谁?

我是Md. Jamal Uddin,软件开发人员,常驻孟加拉国达卡。我喜欢学习新事物并与他人分享。玩转尖端科技是我的爱好,而研究遗留系统则是我的日常工作 :)。请在TwitterLinkedIn上联系我。

鏂囩珷鏉ユ簮锛�https://dev.to/jaamaalxyz/ Different-type-of-function-in-javascript-364l
PREV
GraphQL——为什么你应该在 2021 年使用它。
NEXT
使用 CSS 将视频作为文本背景