在Javascript中启动变量的好方法?

时间:2017-08-10 08:55:05

标签: javascript variables

我有一位同事用空字符串实例化他的所有变量作为默认值。该变量稍后可以为其分配一个数组或对象,尽管可能知道他仍然将空字符串指定为默认值。实施例

function getAllCars(){
  var listOfCars = ['bmw','fiat','reno'];
  return listOfCars;
}

function getAnyCar(){
  var cars = "";
  cars = getAllCars();
  var car = cars.slice(0,1);
  return car;
}

TL; DR: 定义cars的良好做法应该是什么?

  1. var cars;
  2. var cars = [];
  3. var cars = "";
  4. 我试图向他解释,如果您知道变量cars将用于保存数组,则应使用空数组定义它。

    他认为他知道变量100%将被分配一个数组,即cars = getAllCars();所以无关紧要。在一个小功能中,这样的事情可能是可见的,但我认为这是不好的做法。

3 个答案:

答案 0 :(得分:2)

将变量的类型经常更改为不相关的类型确实是不好的做法。 Javascript已经有两个完全正确的值,表示“无价值”:undefinednull。你读到的差异主要取决于你,但两者都比空字符串更合适。最自然的方式是默认undefined

var cars;

这会在范围中保留变量名称,但不会为其赋值。这是表达此代码实际执行情况的最清晰方式。

答案 1 :(得分:1)

JS是动态类型的,允许在运行时更改类型,但这会让您的代码感到困惑。

根据良好实践(如果不是最佳),建议在声明变量时初始化变量。这样可以提供更清晰的代码(清楚地表明汽车是一个阵列)并避免undefined值。

var cars = [];

另一方面,一些开发者喜欢在必要时声明而不是初始化。所以这也很好。

var cars;

我认为这两者中的哪一个是意见问题或者可能是选择。但可以肯定的是,在您的示例中,初始化var cars = ""根本没有意义。

答案 2 :(得分:0)

将空字符串定义为默认值是一种非常糟糕的做法。我会用

var cars = getAllCars();
相关问题