1

也许是习惯,也许是为了一致性,但是为什么var在模块的根范围内使用这么多(许多代码示例都表明了这一点)?真的有必要吗?我的意思是模块是根范围,所以无论你声明一个变量有还是没有var,你在这两种情况下都将它附加到同一个对象,对吗?你不会弄乱任何命名空间,不是吗?

qs = require('querystring'); // looks better than

var qs = require('querystring'); // right?
4

1 回答 1

4

原因是 Common JS 模块不仅用于 node.js,还用于各种其他环境。

许多 Common JS 模块也可以在浏览器中使用。每个模块都有自己的函数包装器,以将其与其他模块隔离。在这种情况下,有必要使用var,以免意外泄漏到全局范围内。

话虽如此,大多数开发人员更喜欢var在他们的代码中显式使用,原因如下:

  1. 这是一个很好的编程习惯。说真的,编程就是实践。我非常习惯于使用声明变量var,我经常发现自己var在 C/C++ 中使用声明,然后让编译器对我哭泣。
  2. 使用操作符声明的变量var不能被删除delete。有时我会故意省略var全局变量,以便稍后删除它们并以“忍者模式”运行。
于 2013-03-16T06:12:20.733 回答