纠结 JS 变量用 let 还是 const 定义

2018-12-19 19:40:38 +08:00
 mytry

理论上说能用 const 的地方尽量用 const 当然是最好的,但发现用了 const 之后有些地方没之前优雅了。比如某个程序有很多这样的代码:

let a = ...
if (a > 0) {
  ...
}

本来两个 a 都是工整对齐的,换成 const 变成:

const a = ...
if (a > 0) {
  ...
}

感觉没以前美观了😂

还有本来一堆变量都是 let 定义的,现在有些是 let 有些是 const 定义:

const num = arr.length;
let i = 0;

const map = {};
...

看起来也没有统一用 let 那么整齐了。。。而且有些 let 的初始值依赖 const 的值,也没法分开归类定义。。。强迫症患者表示好纠结这个问题~

9232 次点击
所在节点    程序员
99 条回复
bajie
2018-12-19 19:49:33 +08:00
let 定义变量
const 定义常量
而且。。代码优雅的意思是对齐吗。。。。。
kba977
2018-12-19 19:51:13 +08:00
变量能用 const?
shiny
2018-12-19 19:51:19 +08:00
MeteorCat
2018-12-19 19:55:19 +08:00
这戏怎么这么多,黑人问号
arrow8899
2018-12-19 19:55:35 +08:00
你怕不是把 const 和 var 搞混了吧。。。
Nasei
2018-12-19 19:56:13 +08:00
竟然纠结这种对齐…让我想到了十几年前的 c 代码里,有一种风格是从 = 号对齐的
rrfeng
2018-12-19 19:57:27 +08:00
@Nasei
现在有时候也会写这样的代码啊…哈哈哈哈哈
qwertyzzz
2018-12-19 19:57:28 +08:00
有点优雅的
dapang1221
2018-12-19 19:58:23 +08:00
工整对其这 4 个字我想了半分钟才明白是这么个对齐法……
iiii
2018-12-19 19:58:40 +08:00
自己代码里基本上全是 const
codermagefox
2018-12-19 19:59:59 +08:00
代码对齐 !==优雅
可读性==优雅
逻辑清晰===优雅
Kirscheis
2018-12-19 20:00:16 +08:00
为什么 const 后面还能有分支?
dd0754
2018-12-19 20:01:40 +08:00
ShangbaizeDaoye
2018-12-19 20:02:04 +08:00
???
你 const 个 a,然后再让 a 比较大小?
说正经的,const 定义的是常量。。
而且你要是强迫症犯了,为何不让 const 定义的放一起,let 定义的放一起,然后两组用空行隔开呢?
zbinlin
2018-12-19 20:02:30 +08:00
在 js 里,一般 let 用来定义的变量可以改变的,const 用来定义的变量不可改变的。
所以尽量用 const,如果需要用 let,还是要用的。当然,如果 do expression 可以进入标准的话,用 let 的场景就更少了。
mytry
2018-12-19 20:05:35 +08:00
@ShangbaizeDaoye
const 只是定义后不再修改而已,并非静态可知值。比如:

const n = Math.random() > 0.5 ? A() : B();

都是很常见的。
yunye
2018-12-19 20:06:04 +08:00
学点基础再来说优雅吧
mytry
2018-12-19 20:09:13 +08:00
当然最终结果,还是把能用 const 的地方都换成了 const,毕竟不对齐的地方太多了,而已这种小细节比起健壮性算不上什么,只是偶尔觉得有些纠结而已。。。

另外代码里很多地方用了 const 下一行再 await,这下反而更对齐了 233333333
tabris17
2018-12-19 20:09:32 +08:00
我觉得作为一个优雅的英语使用者,应该用 assign a = ...
ShangbaizeDaoye
2018-12-19 20:14:05 +08:00
@mytry 这样的话,那还是建议多关注易读性和逻辑,过于纠结这种没必要的对齐,到最后可能会事倍功半。。
大不了也可以像我上面说的 const 放一起,let 放一起。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/519096

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX