Javascript 函数
目录
函数
函数是 JavaScript 程序的基本构建模块,也是所有编程语言中最常见的特性。从技术角度来说,函数究竟是什么?函数是一段代码块,它只需定义一次,就可以多次执行或调用。另外需要注意的是,函数也是对象,这意味着它们可以被其他程序操作。
我们可以使用function关键字声明一个函数,后面跟着一个我们喜欢的名称,再后面跟着一对开括号和闭括号,括号和大括号parentheses之间有一个空格,大括号内可以有零个或多个语句。parameterscurly
function buzz() { }
现代 JavaScript 中还有另一种声明函数的方法,那就是使用 ` arrow function.`。它看起来像一个箭头,但它有自己的章节,我们稍后也会介绍,因为它有一些限制。
() => {}
在括号内,我们可以包含标识符,或者说参数。这些参数充当函数体的局部变量。要从这些变量中获取值,我们只需调用函数并传入一些值(或技术术语中的参数)即可。我们使用这些参数来计算值,并在调用过程中返回该值。
如果将一个函数赋值给对象的一个属性,该函数就成为method该对象的一个属性。这就让事情变得稍微复杂了一些,因为我们现在是通过对象来调用函数,对象就成了关键字的上下文this。关键字this本身值得另写一篇文章来讨论,所以我们暂时略过,但记住这一点在为对象创建方法时很有用。也就是说,我们也可以将函数赋值给一个变量,然后将该变量传递给其他函数。正如我们之前提到的,由于函数也是对象,因此你也可以设置它们的属性并调用它们的方法。
传统功能
关键字function是声明函数的唯一方法。我们还可以声明函数表达式,它本质上就是将函数存储在一个变量中。例如
函数声明
function printName(str) {
return "Hello " + str
}
console.log(printName('oscar')) // output "Hello oscar"
函数表达式
let addUp = function(a,b) {
return a + b
}
console.log(addUp(1,2)) // output 3
function declaration`a`和` function expressionb`的主要区别之一在于函数名,在函数表达式中可以省略函数名以创建匿名函数。默认情况下,undefined如果没有指定返回值的 `return` 语句,函数会返回 `null`。关于函数,还需要注意的一点是,它们也可以在 ` if/elseif` 语句中使用条件声明,但这通常会导致结果不一致,因此不建议这样做。
声明函数的一个很棒的特性是提升,你可以在声明函数之前使用它。
printHello(); // logs 'Hello'
function printHello() {
console.log('Hello');
}
另一方面,函数表达式不会 被提升。因此,你不能在创建函数表达式之前就使用它。
箭头函数
ES6引入了`__init__`arrow functions关键字,它是传统函数表达式的一种简洁高效的替代方案,但也有其局限性,并非适用于所有情况。它没有像 `__init__`或`__returns` 关键字那样的绑定,也不适用于`__init__`、`__returns` 或 `__returns`方法,更不能用作构造函数。thissupercallapplybind
让我们把 a 分解declared function成 aarrow function
function(name) {
return 'Hello ' + name;
}
我们首先删除function关键字,保留参数,然后arrow在参数和花括号之间添加一个。
(name) => {
return 'Hello ' + name;
}
接下来,我们将移除花括号和 return 语句。return 语句是自动省略的。
(name) => 'Hello ' + name;
最后一步,我们可以去掉括号,因为参数中只传递了一个参数。
name => 'Hello ' + name;
正如我们之前提到的,强烈建议不要使用箭头函数,methods以避免出现错误或其他问题,箭头函数最适合用于非方法函数。
结论
我希望读完本文后,您能够学会如何编写代码,并理解每一行代码的运行机制。理解代码的完整工作原理至关重要,这不仅能帮助您成为更优秀的开发者,还能帮助您更高效地使用各种工具。
这些文章主要是为了个人提升编程和写作能力而写的,旨在提高我的编程技能。如果您有任何反馈或建议,欢迎随时提出,这对我和其他读者都很有帮助。感谢您耐心读到这里!
文章来源:https://dev.to/cleveroscar/javascript-functions-k34