我最近一直在为io.js写很多ES6代码。没有太多可学习的代码,所以我觉得自己正在定义自己的约定。
我的问题是有关何时使用const
VS let
。
我一直在应用此规则:如果可能,请使用const
。仅let
当您知道其价值需要改变时才使用。(如果以后发现您需要更改其值,则可以随时将其更改const
为a let
。)
此规则的主要原因是易于一致地应用。没有灰色区域。
问题是,当我应用此规则时,实际上95%的声明是const
。这对我来说很奇怪。我只使用let
的东西像i
一个for
循环,或偶尔搞什么积累斐波那契数总数(不拿出在现实生活中很多)。我对此感到惊讶–事实证明,到目前为止,我的ES5代码中95%的“变量”是针对不变的值。但是,看到const
我的代码全都感觉不对。
所以我的问题是:可以使用const
这么多吗?我真的应该做类似的事情const foo = function () {...};
吗?
还是我应该保留const
那些在模块顶部对文字进行硬编码的情况const MARGIN_WIDTH = 410;
?
function foo() {...}
胜于<anything> foo = function() {...}
function foo() {...}
,由于吊装,在调试时可能会引起一些混乱。同样,它的存在意味着我们有两个构造函数执行相同的操作,但是其中一个仅在非常特定的上下文中起作用。(您可以在可以存在表达式的任何地方使用函数表达式,但只能在语句级别使用函数声明。)如果您过于简洁,则问题可能出在函数表达式语法使用整个单词function
。
const
多使用这个问题。