【发布时间】:2018-03-15 03:37:04
【问题描述】:
我不是在问技术上什么是可行的;我知道你能做到
const a = [];
const b = {};
a.push['sup'];
b.test = 'earth';
我想知道的是,当涉及到将修改其内部结构的数组和对象时,是否有任何约定更喜欢let 而不是const。如果您看到一个用const 声明的对象,您是否认为该对象是不可变的,您是否更愿意看到let,或者,因为某些linter(如tslint)对此有问题,用const 声明它并相信其他阅读代码的人都知道这并不意味着它是不可变的,这样会更好吗?
【问题讨论】:
-
@adeneo 我不同意。我再也不用
var了。真的没有理由。至于使用哪个,let或const,这完全取决于意见。如果我打算不碰某些东西,我会使用const。如果它真的不应该被触摸,并且它是某种对象,我使用Object.freeze。 -
IMO,没有理由不用
const声明数组和对象,因为您很可能不会重新定义a和b。 我个人知道这并不意味着它们是不可变的;对于不变性,我会使用例如Object.freeze,但其他人可能会误解…… -
正如 cmets 已经表明的那样,对此没有最佳实践约定。这是一个偏好问题。因此,我投票结束这个问题,因为它主要基于意见。
-
@MikeC - 我一直使用
var,只有在其他两个让事情变得更容易时才使用它们。如果您永远找不到使用非块范围变量的理由,那完全取决于您。 -
想出自己的约定(并写下来)并坚持下去。一致性在这里是最重要的。
标签: javascript standards tslint