JavaScript功能最佳实践



我是javaScript的新手,目前正在学习编写功能速记。我只是在学习时遇到了这一点:

const groceries = (groceryItem) => ' - ' + groceryItem;

在现实世界中写下这样的写作功能是可以接受的/最佳实践吗?(没有返回,没有括号(我注意到扩展可能很烦人。还是这只是标准练习?

我还会注意到速记,如果也没有括号的语句。还有标准练习?

我想尽早学习良好的习惯,因此对此事的任何建议将不胜感激。

有几种声明功能的方法,每个用例和优点和缺点。结果,没有"首选"方式。在您的情况下使用适当的语法。

以下是设置功能的不同方法的摘要,并简要说明每个功能。单击标题链接,以指向该类型的更多深入资源:

功能声明

function foo(){
}

通过函数声明,将整个函数悬挂起来(无论代码中的实际位置如何(到封闭范围的顶部。这使得在声明点之前调用函数。

功能表达式

var foo = function(){

}

函数表达只是变量声明,这些声明将函数(作为数据(分配给变量。与函数声明一样,这里也有升起,但是只有变量(在此示例中的foo(声明被吊起,而不是分配,因此在这种情况下,您无法在声明之前调用该函数。

箭头功能

const groceries = (groceryItem) => ' - ' + groceryItem;

这只是短手语法而不是使用函数表达式。但是,箭头函数有区别。使用箭头函数,this绑定到的对象在函数中不受影响,而在非箭头函数中受到影响。

立即调用函数表达式

(function(){
})();

立即调用的函数表达式(IIFE(是一个匿名函数(无名称的函数(,通过用括号将其包裹,然后立即使用另一组括号来调用。该语法在JavaScript中非常普遍,用于创建与其他范围不冲突的范围。

注意:

函数是JavaScript的工作马,取决于您如何设置它们并调用它们,它们做了许多不同的事情:

  • 它们可以是直接不可拨号的代码的单位。
  • 它们可以是变量或属性的值。
  • 它们可以是用于实例化对象的构造函数实例。
  • 它们可以是通过参数传递的原始数据。

是的,我认为这是可以接受的,因为箭头功能是专门设计的。箭头功能的功能之一是,它们允许将非常简单的功能写成这样的单线。当您可以将返回值计算为单个表达式时,您无需明确地写带有牙套或return语句的身体。这使得传统功能不必要地详细,其样板比实际的函数的实际代码更多。传统的替代方案看起来像:

const groceries = function(groceryItem) {
    return ' - ' + groceryItem;
}

定义命名函数时,这还不错,但是当您将匿名函数用作回调时,所有的详细性可能会掩盖意图。比较:

newarray = oldarray.map(function(x) {
    return x * x;
}

with:

newarray = oldarray.map(x => x * x);

箭头功能是该语言的最新补充,因此我认为我们可以假设该设计得到了重大考虑。如果JavaScript社区没有感觉到这样的速记功能是一个好主意,那么首先不允许它们。

您写的功能通常称为"箭头函数"。当您在JavaScript中达到更高级的水平时,它们可以证明非常有用,而且它们绝对没有错。相反。非常常用于数组的"高阶功能",以举例说明。

最新更新