1

每个var语句声明一个变量是否很好,它使代码更容易根据修改需要重新排序程序中的行。

有人可以弄清楚,在代码执行方面,Node.js 中的以下声明风格有什么区别吗?

//Style 1
var keys = ['foo', 'bar']; var values = [23, 42];

//Style 2
var keys = ['foo', 'bar'], values = [23, 42];
4

1 回答 1

4

JavaScript 中可以有多个var语句;这称为吊装;但是,因为您可能会遇到范围问题,所以最好在任何函数中使用单个声明。

这种风格很常见

var keys   = ['foo', 'bar'],
    values = [23, 42];

事实上,JavaScript 允许您将声明链接在一起的原因是因为它们应该一起发生。

为了说明范围界定问题:

f = "check?";

var hello = function () {
  console.log(f);          // undefined
  var f = "nope!";
  console.log(f);          // nope!
};

var hello2 = function () {
  console.log(f);          // check?
  var f2 = "nope!";        // not reusing `f` this time
  console.log(f2);         // nope!
};

hello();
hello2();

乍一看,你会认为第一个输出是check?,但因为你在var f函数体内部使用,JavaScript 正在为它创建一个本地范围。

为了避免遇到这样的问题,我只使用一个var声明:)

于 2013-02-11T13:32:24.190 回答