在Javascript中初始化变量的良好实践?

在Javascript中初始化变量的良好实践?,javascript,variables,Javascript,Variables,我有一位同事,他用空字符串作为默认值实例化了所有变量。稍后,该变量可能会被分配一个数组或对象,尽管这可能是已知的,但他仍然将空字符串指定为默认值。前 function getAllCars(){ var listOfCars = ['bmw','fiat','reno']; return listOfCars; } function getAnyCar(){ var cars = ""; cars = getAllCars(); var car = cars.slice(0

我有一位同事,他用空字符串作为默认值实例化了所有变量。稍后,该变量可能会被分配一个数组或对象,尽管这可能是已知的,但他仍然将空字符串指定为默认值。前

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

function getAnyCar(){
  var cars = "";
  cars = getAllCars();
  var car = cars.slice(0,1);
  return car;
}
TL;博士: 定义
汽车的良好实践应该是什么

  • var汽车
  • var cars=[]
  • var-cars=”“
  • 我试图向他解释,如果你知道变量
    cars
    将用于保存一个数组,你应该用一个空数组来定义它


    他认为他知道变量100%将被分配一个数组,即
    cars=getAllCars()所以没关系。在一个小函数中,这样的事情可能是可见的,但我认为这是一种糟糕的做法。

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

    var cars = getAllCars();
    

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

    var cars = getAllCars();
    

    让变量经常将其类型更改为不相关的类型确实是一种不好的做法。Javascript已经有两个非常好的值来表示“无值”:
    undefined
    null
    。您对差异的理解主要取决于您,但两者都比空字符串更合适。最自然的方式是默认的
    未定义的

    var cars;
    

    这会在作用域中保留变量名,但不会为其赋值。这是表达此代码实际执行操作的最清晰的方式。

    让变量经常将其类型更改为不相关的类型确实是一种不好的做法。Javascript已经有两个非常好的值来表示“无值”:
    undefined
    null
    。您对差异的理解主要取决于您,但两者都比空字符串更合适。最自然的方式是默认的
    未定义的

    var cars;
    

    这会在作用域中保留变量名,但不会为其赋值。这是表达这段代码实际作用的最清晰的方式。

    JS是动态类型的,允许在运行时更改类型,但这会使代码混乱

    根据良好实践(如果不是最佳实践),建议在声明变量时初始化它。这提供了更清晰的代码(清楚地指示cars是一个数组),并避免了
    未定义的值

    var cars = [];
    
    另一方面,一些开发人员更喜欢声明,直到必要时才初始化。所以这也很好

    var cars;
    

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

    JS是动态类型的,允许在运行时更改类型,但这会让您的代码变得混乱

    根据良好实践(如果不是最佳实践),建议在声明变量时初始化它。这提供了更清晰的代码(清楚地指示cars是一个数组),并避免了
    未定义的值

    var cars = [];
    
    另一方面,一些开发人员更喜欢声明,直到必要时才初始化。所以这也很好

    var cars;
    

    我认为这两者中的哪一个是意见的问题,或者是选择的问题。但可以肯定的是,在您的示例中初始化
    var cars=”“
    毫无意义。

    更好的做法是在代码中永远不要有未初始化的对象,通常是
    const cars=getAllCars()
    。处理不洁状态是一项艰巨的任务。不过这是主观的。@BenjaminGruenbaum谢谢你链接的谈话。看起来很有趣。将保存它以供以后查看。更好的做法是在代码中永远不要有未初始化的对象,通常是
    const cars=getAllCars()
    。处理不洁状态是一项艰巨的任务。不过这是主观的。@BenjaminGruenbaum谢谢你链接的谈话。看起来很有趣。将保存它以便以后观看。