gpt4 book ai didi

javascript - 在 nodejs/commonjs 模块的根范围内声明对象 - 到 var 还是不到 var?

转载 作者:行者123 更新时间:2023-11-30 10:33:30 25 4
gpt4 key购买 nike

可能是习惯,也可能是为了一致性,但为什么 var 在模块的根范围内使用得如此之多(许多代码示例都表明了这一点)?真的有必要吗?我的意思是该模块是根作用域,所以无论您声明的变量是否带有 var,您在两种情况下都将它附加到同一个对象,对吗?您没有弄乱任何 namespace ,不是吗?

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

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

最佳答案

原因是 Common JS 模块不仅在 node.js 中使用,而且在其他各种环境中使用。

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

话虽这么说,大多数开发人员更愿意在他们的代码中显式使用 var,原因如下:

  1. 这是一个很好的编程习惯。说真的,编程就是练习。我习惯于使用 var 声明变量,以至于我经常发现自己在 C/C++ 中使用 var 声明,然后让编译器对我哭诉。
  2. 不能使用delete 运算符删除使用var 声明的变量。有时我会故意在全局变量中省略var,以便稍后删除它们并以“忍者模式”运行。

关于javascript - 在 nodejs/commonjs 模块的根范围内声明对象 - 到 var 还是不到 var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15446022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com