我觉得有点儿跑题。
var/let这种前缀在不同的语言中语法是完全不一样的,混为一谈没法讨论……
在JS里面是作用域限定符,在C#等强类型语言里面是类型推导标识符,在VB类似的语言里面是声明语句前导符,let在LINQ Expression里面是定义表达式别名
一个用来限定作用域,一个用来告诉编译器自行推导类型,一个用于标识声明语句。你一个笼统的有什么好处这根本不构成问题。
更何况,在第二种场景中,var声明的变量很多情况下要求必须声明时赋值,第一种第三种场景中大部分语言也支持声明时赋值,所谓的和直接赋值有什么区别这种问题就完全摸不着头脑了……
这个问题透着一股邪乎味儿,怎么看怎么危险啊……
建议专业机构给予支援。