为什么我应该使用大部分时间const而不是letJavaScript?正如我们所知,如果我们使用,const那么我们以后就无法重新分配价值.那为什么不用letconst而不是const呢?
T.J*_*der 27
您应该在代码中使用let或const酌情使用:
let 如果变量的值在代码期间会发生变化const如果它不会(但这是一个风格问题,取决于你的项目的风格指南)在实践中,如果你遵循通常的规则来保持你的功能小等等,那么经常会发现这意味着你使用const (如果你/你的团队想要),因为你最终不需要改变一个变量,这是令人惊讶的.值.(好吧,无论如何,它让我感到惊讶......)
使用const时并不意味着variable's¹值来改变完成几件事情:
它告诉其他人阅读你的代码,你不打算改变价值.
如果您执行的操作会更改变量的值而不打算这样做,它会为您提供一个很好的主动错误.(智能IDE可以主动标记它.)
它给出了JavaScript引擎优化器的提示,你不会改变该变量的值.虽然引擎可以经常通过静态代码分析来解决const这个问题,但是使用它可以省去麻烦,并且当静态代码分析可能无法显示值不变时,可以使用它.
当您收到上述#2中的错误时,您可以做出明智的决定:您应该将其更改为let,或者您是否意味着首先要更改该变量的值?
¹是的,使用术语"变量"来指代根据定义不变的东西是很有趣的.:-)规范的术语是"绑定",但我打赌你不会听到人们很快就会在日常会话中谈论"绑定"...所以总体术语可能会保持"可变",除非我们可以特别提到作为"常数"的东西.
const默认使用是一种意见使用const缺省不再表示意图创造一个实常数(例如显影剂可以首先声明与可变const,之前将其切换至let执行期间)。另一方面,这种处理方式意味着使用let表示警告:“请注意,此变量将被修改”。
let默认情况下使用并不表示要修改变量或不打算修改变量。但这使用了const代表以下信息:“我希望此变量为常量”。
因此,这是编程风格的问题。
const默认使用的参数支持const默认使用的参数如下:
const变量的开发人员可以依靠不会重新分配该变量的确定性。这是const与TypeScript一起使用时的优势示例:
const hello = "Hello" as string | undefined
if (hello !== undefined) {
["Pierre", "Paul"].forEach(
name => console.log(`${hello.toUpperCase()}, ${name}`) // OK
)
}
Run Code Online (Sandbox Code Playgroud)
使用let,在strict模式下,TypeScript会检测到错误:
let hello = // …
// …
name => console.log(`${hello.toUpperCase()}, ${name}`)
// ^__ error here: Object is possibly 'undefined'.
Run Code Online (Sandbox Code Playgroud)
let默认使用的参数我在这里总结了默认情况下使用“ let”而不是“ const”的文章,该文章提供了支持let默认使用而不是const:
let,因为它更具有表现力,以储备const为实常数;const 具有误导性,因为它不会阻止对引用的修改;const默认情况下使用与功能参数不一致。const。