我在项目中为js(es6)添加了linters,对于新配置,我发现它们阻止在函数内部使用const
- 仅用于模块级常量。在内部函数中我应该使用let
。但我无法找到这种规则的任何理由。为什么呢?
对于jscs,例如
disallowConstOutsideModuleScope:
const
应仅用于模块范围(不在函数/块内)
我知道我可以配置并关闭该规则,我只是想知道它启用了什么?这种检查的动机是什么?
P.S。我有链接https://madhatted.com/2016/1/25/let-it-be和块“常量常量”
关于何时使用let和const我还需要解决另一个问题。该策略建议开发人员尽可能使用const。任何未重新赋值的变量都应使用const。
声明我认为这种用法很糟糕。它给编程过程增加了额外的注意力,导致代码难以理解和改变。
但我找不到那些有价值的论据
答案 0 :(得分:2)
这只是一个编码指南。他们遵循this学派的思想。如果您不想使用它,请随意在.jscsrc
文件中将其关闭。要点是:
- 积极使用const贬值运营商
- 首先选择const真的意味着选择考虑每个声明。下一行代码会改变这个分配吗?怎么样 我会用这个变量吗?
- let和const之间没有已知的性能差异。
醇>