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

时间:2016-08-16 20:48:57

标签: ecmascript-6 jscs linter

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

对于jscs,例如

  

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

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

P.S。我有链接https://madhatted.com/2016/1/25/let-it-be和块“常量常量”

  

关于何时使用let和const我还需要解决另一个问题。该策略建议开发人员尽可能使用const。任何未重新赋值的变量都应使用const。

声明      

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

但我找不到那些有价值的论据

1 个答案:

答案 0 :(得分:2)

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

  
      
  1. 积极使用const贬值运营商
  2.   
  3. 首先选择const真的意味着选择考虑每个声明。下一行代码会改变这个分配吗?怎么样   我会用这个变量吗?
  4.   
  5. let和const之间没有已知的性能差异。
  6.