Moh*_*waj 2 javascript node.js express ecmascript-6
在我的项目的代码优化期间,我用替换了所有var
keyword 实例,let
因为我认为没有特殊用途var
。我在所有文件中都执行了“查找并替换”操作。
在某些自定义模块中,我使用了以下语句:
var exports = module.exports = {};
Run Code Online (Sandbox Code Playgroud)
效果很好。
现在,将其替换为后let
,它变为:
let exports = module.exports = {};
Run Code Online (Sandbox Code Playgroud)
现在无法正常工作并出现错误
语法错误:标识符'exports'已经被声明
尽管我可以使用var
并避免这个问题,但我仍然想知道背后的原因是什么。
编辑:我没有let exports = <something>;
在同一模块文件中的任何地方使用过。所以这是我声明exports
变量的唯一语句。
原因是因为exports
已经在Nodejs模块系统中初始化。
https://nodejs.org/api/modules.html#modules_module_exports
module.exports
模块加载时该对象存在。由于let
是特定于范围的,因此可以防止您限制范围。 const
也会失败。
归档时间: |
|
查看次数: |
593 次 |
最近记录: |