const 的过度使用有什么害处吗?

2018-03-14 10:01:43 +08:00
 wwjvtwoex
最近把代码中的大多数 var let 变量变成了 const (除了 循环计数器 和 循环枚举值)

对象没有 freeze
清除数组用 ary.length = 0
清除对象用 obj.attr = undefined

请问这样作有什么害处吗?
8142 次点击
所在节点    JavaScript
55 条回复
BearD01001
2018-03-14 17:07:42 +08:00
优先 const,其次 let,弃用 var。
zhouyg
2018-03-14 17:13:40 +08:00
多用 const 属于最佳实践的范畴
allenx
2018-03-14 17:28:23 +08:00
老夫写 cpp,能用 const 就用 const,多打几个字以后调试的时候就知道多方便了,至少 const 的变量就不用管了,const 的函数也不需要过于关心。
shyling
2018-03-14 17:43:41 +08:00
就是打字累了吧,毕竟 const 5 个字符,let var 都是 3 个(
xierch
2018-03-14 17:48:03 +08:00
所以现在有些新语言就是默认 const 的嘛
DOLLOR
2018-03-14 17:49:38 +08:00
尽量用,并且配合预处理工具用。
ConradG
2018-03-14 17:52:52 +08:00
简单类型建议尽可能用 const
js 由于没有 const 方法,不建议其他的对象类型使用 const
MinonHeart
2018-03-14 18:52:08 +08:00
@DRcoding const d = {var: 0}; d.var = 1; 动态,不失“优雅”
---
var a = [1,2,3];
var b = a; // 如果想要 a,b 同时保持相同的引用,const 就非常推荐用了
a = [];
cccRaim
2018-03-14 19:15:33 +08:00
清除对象不应该用 delete obj.attr 吗
smilingsun
2018-03-14 19:51:47 +08:00
怎么感觉自己不是写 js 的,用 let 有什么坑吗?
otakustay
2018-03-14 21:26:36 +08:00
@BearD01001 但是 arr.length = 0 少生成一个垃圾,为 GC 争取了幸福
gnaggnoyil
2018-03-14 23:20:46 +08:00
@murmur 可是 c 里面确实不能通过 cast 来去除 const 啊,除非你把触发未定义行为也定义为"能"
DRcoding
2018-03-15 09:15:11 +08:00
@MinonHeart 握草,还有这种姿势,是万万没有想到啊,受教了感谢,另外总感觉用关键字做对象属性名字怪怪的,js 这奇怪的设定,QAQ
raighne
2018-03-15 09:18:04 +08:00
部分老安卓手机会不支持
e8c47a0d
2018-03-19 09:30:32 +08:00
唯一的害处是,代码会变得很长

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

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

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

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

© 2021 V2EX