JavaScript 中的不同类型的函数
JavaScript 中的不同类型的函数
JavaScript 中的不同类型的函数
JavaScript 函数是用于执行特定任务的代码块。
MDN 说:
函数是 JavaScript 的基本构造块之一。函数是一个 JavaScript 过程——一组执行任务或计算值的语句。要使用函数,必须在希望调用它的作用域内进行定义。
当“某物”调用 JavaScript 函数时,该函数就会执行。
例子:
function square(x) {
return x * x;
}
square(10); // 100
基本语法:
function validFunctionName(parameter) {
return statement;
}
函数可以有多个参数,也可以没有参数。以下示例中,bark 没有列出任何参数名称,而 power 列出了两个:
bark( )
function bark() {
return "woof-woof";
}
bark(); // woof-woof
power( )
function power(base, exponent) {
let result = 1;
for(let count = 0; count < exponent; count++) {
result *= base;
}
return result;
}
power(2, 10); // 1024
函数表达式:
函数表达式定义了一个命名函数或匿名函数。匿名函数是没有名称的函数。
var fullName = function(firstName, lastName) {
return `${firstName} ${lastName}`;
}
fullName("Jamal", "Uddin"); // Jamal Uddin
箭头函数:
箭头函数表达式是编写函数表达式的更简洁的语法。箭头函数不会创建自己的值。
我们可以用多种方式编写箭头函数:
第一的:
它看起来就像一个正则函数表达式,但有箭头(=>)
键。
const double = (value) => {
return value * 2
}
double(10); // 20
第二:
省略 return 关键字
const double2 = value => value * 2;
double2(10); // 20
第三:
如果我们的函数没有参数
const noise = () => console.log("Pling");
noise(); // Pling
或者
const noise2 = _ => console.log("Pling");
noise2(); // Pling
第四:
如果我们有两个或多个参数,则必须使用括号
const addAll = (x, y, z) => x + y + z;
addAll(10, 20, 30); // 60
第五:
我们可以在参数中使用默认值
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
JavaScript 对于传递给函数的参数数量非常宽容。如果传递的参数过多,多余的参数会被忽略。如果传递的参数过少,缺少的参数会被赋值为 undefined。
返回:
请记住,return 关键字只能在函数内部使用。让我们看另一个例子。
function returnOnlyOnce(){
return "Hello";
return "Goodbye";
}
returnOnlyOnce(); // "Hello"
从这个例子中我们看到,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
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
函数与:new Function
Function 构造函数创建一个新的 Function 对象。
var sum = new Function('a', 'b', 'return a + b');
console.log(sum(2, 6)); // 8
真相来源:
PS:英语不是我的母语,这是我的第一篇英文文章,所以如果您发现任何错误,请原谅我,也请鼓励我写更多文章。
祝您编程愉快!:)
我是谁?
我是Md. Jamal Uddin,软件开发人员,常驻孟加拉国达卡。我喜欢学习新事物并与他人分享。玩转尖端科技是我的爱好,而研究遗留系统则是我的日常工作 :)。请在Twitter和LinkedIn上联系我。
鏂囩珷鏉ユ簮锛�https://dev.to/jaamaalxyz/ Different-type-of-function-in-javascript-364l