Javascript:建议变量创建

时间:2016-06-07 02:57:57

标签: javascript

关于JS,我有几个问题。

当我需要从函数返回一些东西然后我通常创建一个变量然后返回变量,这似乎可能是不好的做法,因为我首先创建一个变量然后返回值,我只能返回值。这是真的 ?这背后的原因?

在函数顶部创建变量或仅在需要时创建变量?

我一直在函数的顶部创建所有变量,只在我需要使用它们时创建变量才有用吗?我正在使用ES 2015和其他地方ES5。

我想要检查的最后一件事是在一行或单独的行上创建变量,即

   var myFirstVariable = 1;
   var mySecondVariable = 2;
   var myThirdVariable = 3;

VS

   var myFirstVariable = 1,
       mySecondVariable = 2,
       myThirdVariable = 3;

两种风格都会导致问题吗?

1 个答案:

答案 0 :(得分:3)

  

当我需要从函数返回某些内容时,我通常会这样做   创建一个变量,然后返回变量,这似乎也许   糟糕的做法,因为我先创建一个变量,然后返回   价值,我可以只返回价值。这是真的 ?背后的原因   这个?

这主要是一种编码风格的东西。如果该变量没有其他用途,那么您可以直接返回该值而无需先将其分配给局部变量,因为实际上没有理由首先将其分配给局部变量。如果该值在返回之前用于其他事情,那么您可能希望将其分配给局部变量以避免多次计算它。

例如,在此:

function multiply(x, y) {
    var val = x * y;
    return val;
}

val变量确实没有理由。您可以轻松地做到:

function multiply(x, y) {
    return x * y;
}

今天的解释器可能足够聪明,能够识别除了返回值之外没有其他用途的局部变量并对其进行优化,但大多数人会建议您应该避免使用不需要的额外代码行而不能使用其他代码目的

  

在函数顶部创建变量或仅在创建变量时创建变量   它需要吗?

同样,这是一种编码风格选择。 Javascript中的所有var声明都被提升到函数作用域的顶部,因此从技术上来说,它们是否首先在作用域的顶部而不是函数中的内联声明并不重要。关于最大代码可读性,两者都有合理的情况。

let声明被提升到包含块的顶部,因此与let声明存在差异,无论它是在块内还是在函数顶部声明,但没有区别它在块内或块的顶部声明。

  

我想要检查的最后一件事是创建变量   在一行或单独的行

您的第二个选择:

var myFirstVariable = 1,
    mySecondVariable = 2,
    myThirdVariable = 3;

只是减少打字,但功能上与你的第一个选项没什么不同。大多数人更喜欢使用逗号来分隔多个连续的声明,但这只是一种编码风格选择,可以最大限度地减少键入,因为没有功能差异。