typejavascript(一)

一:setTimeout

setTimeout的例子,我们最后需要使用立即执行的函数表达式来获取每次for循环迭代里的状态。
实际上,我们做的是为获取到的变量创建了一个新的变量环境。 这样做挺痛苦的,但是幸运的是,
你不必在TypeScript里这样做了。当let声明出现在循环体里时拥有完全不同的行为。 不仅是在
循环里引入了一个新的变量环境,而是针对每次迭代都会创建这样一个新作用域。 这就是我们在
使用立即执行的函数表达式时做的事,所以在setTimeout例子里我们仅使用let声明就可以了。

for (let i = 0; i < 10 ; i++) {
    setTimeout(function() {console.log(i); }, 100 * i);
}

二:let vs. const

现在我们有两种作用域相似的声明方式,我们自然会问到底应该使用哪个。 与大多数泛泛的问题一样,
答案是:依情况而定。

使用最小特权原则,所有变量除了你计划去修改的都应该使用const。 基本原则就是如果一个变量不
需要对它写入,那么其它使用这些代码的人也不能够写入它们,并且要思考为什么会需要对这些变量
重新赋值。 使用const也可以让我们更容易的推测数据的流动。

另一方面,用户很喜欢let的简洁性。 这个手册大部分地方都使用了let。

跟据你的自己判断,如果合适的话,与团队成员商议一下。 Fortunately, TypeScript allows 
you to specify that members of an object are readonly. The chapter on Interfaces 
has the details.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值