【问题标题】:Why should I use let instead of const inside functions? [closed]为什么我应该在函数内部使用 let 而不是 const? [关闭]
【发布时间】:2016-12-23 09:04:54
【问题描述】:

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

以 jscs 为例

disallowConstOutsideModuleScope: const 只能在模块范围内使用(而不是在函数/块内)

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

附:我有链接 https://madhatted.com/2016/1/25/let-it-be 与块“Constantly const”

关于何时使用 let 和 const 我需要解决另一种观点。该策略建议开发人员尽可能多地使用 const。任何没有重新赋值的变量都应该用 const 声明。

我认为这种用法是不好的做法。它给编程过程增加了额外的干扰,导致代码难以理解和更改。

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

【问题讨论】:

  • +1;我不知道为什么有人会想要那个。除非您确实需要更改变量,否则应始终使用 const
  • 对我来说似乎都很固执。

标签: ecmascript-6 jscs linter


【解决方案1】:

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

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

【讨论】:

  • 为了设计目的而积极使用某些东西可能会以某种方式“贬低”它,坦率地说,真的很奇怪。我发现我绝大多数使用const,所以我不必“停下来考虑每个声明”,如果它恰好是我想要修改的变量,我的编辑器/编译器会立即告诉我,这样我就可以在两秒钟内改变它。
  • 关于 p1 和 p2 - 然后我可以在任何地方使用var。我想使用 const (和 TS 中的类型)可以减少错误的数量 - 如果我要重新定义一些变量,我会直接说出来
猜你喜欢
  • 2017-04-26
  • 2012-08-02
  • 2020-03-10
  • 2023-03-25
  • 2022-11-21
  • 1970-01-01
  • 2016-05-23
  • 2011-09-22
相关资源
最近更新 更多