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

2018 年 12 月 19 日
 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 的值,也没法分开归类定义。。。强迫症患者表示好纠结这个问题~

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

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

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

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

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

https://study.congcong.us/t/519096

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

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

© 2021 V2EX