在Javascript中将字符串文字提取为常量是最佳做法吗?

KC *_*ltz 5 javascript constants

在Java中,我认为最好的做法是将字符串文字替换为常量变量,只要它们在多个地方使用并且预期匹配即可.例如,如果您要设置cookie然后再将其读回,则cookie的名称应该是常量,以便编译器可以帮助您捕获拼写错误,更不用说允许您拥有可读的变量名称与String的实际值相对.

我正在JavaScript中查看这样的代码,我倾向于建议将文字替换为常量.但是,由于没有编译器,我不确定应用相同的原因,并且cookie名称与变量名称一样具有描述性.

编辑:与目前收到的评论和回复相关,我肯定更关心常量的使用与实际实现的方式.我认为它们在Java和其他编译语言中的价值是一种防止错误的方法,但我不确定我在Javascript中看到了相同的值.

作为一种文档机制,比如魔术数字,我认为拥有一个命名变量(即使它不被强制为常量)仍然是提高可读性的好方法.但对于字符串文字,我不确定这个:

var trackingCookieName = "trackingCookie";
Run Code Online (Sandbox Code Playgroud)

要比使用"trackingCookie"更好,因为你可以输入文字或变量名称,无论哪种方式,它只会在运行时被捕获.

sam*_*sam 8

将字符串文字提取为常量意味着

  • 像JSHint这样的工具可以识别拼写错误的变量名称
  • 压缩器可以缩写变量名称以获得较小的输出
  • 您可以在一个位置更改字符串值


gdo*_*ica 6

答案是主观的.如你所写,没有编译器或常量.

因此,如果字符串存储在变量中,它可以帮助您阅读和维护代码,那么请执行此操作,否则请避免使用...

  • 同意。我要补充一点,随着字符串文字数量的增加,使用常量可能会更好。如果出现拼写错误,您可能会得到一个 ReferenceError,这将使调试变得更加容易。 (2认同)