为什么我应该在函数内部使用let而不是const?

Vas*_*huk 7 ecmascript-6 jscs linter

我在我的项目中为js(es6)添加了linters,对于新配置,我发现它们阻止使用const内部函数 - 仅用于模块级常量.我应该使用内部函数let.但我无法找到这种规则的任何理由.为什么?

对于jscs来说就是这样

disallowConstOutsideModuleScope:const应仅用于模块范围(不在函数/块内)

我知道我可以配置和关闭该规则,我只是想知道它启用了什么?这种检查的动机是什么?

PS我有链接https://madhatted.com/2016/1/25/let-it-be与块"常量常量"

关于何时使用let和const我还需要解决另一种思想流派.该策略建议开发人员尽可能使用const.任何未重新赋值的变量都应使用const声明.

我认为这种用法很糟糕.它给编程过程增加了额外的注意力,导致代码难以理解和改变.

但我发现这些论点很有价值

Max*_*din 3

这只是一个编码指南。他们遵循这种思想流派。如果您不想使用它,请随时在您的.jscsrc文件中将其关闭。主要要点是:

  1. 过度使用 const 会降低运算符的价值
  2. 首先选择 const 实际上意味着选择考虑每个声明。下一行代码会改变这个分配吗?我将如何使用这个变量?
  3. let 和 const 之间没有已知的性能差异。

  • 坦率地说,积极地使用某些东西来实现它的设计可能会以某种方式“贬低”它的价值,这真的很奇怪。我发现我大量使用 `const`,所以我不必“停下来思考每个声明”,如果它恰好是我确实想要修改的变量,我的编辑器/编译器会立即告诉我,这样我就可以两秒钟内更改它。 (9认同)