为什么我们不在 JavaScript 的函数参数中使用“let”、“var”和“const”等关键字?

Adi*_*tya 8 javascript variables

function myFunction(let name){
    console.log("hello "+name);
}

myFunction("adi");
Run Code Online (Sandbox Code Playgroud)

上面的代码会产生错误。为什么?

Bar*_*mar 4

letconst是该语言中相对较新的功能,它们是在 EcmaScript 6 中添加的。在此之前,所有变量对于函数来说都是全局变量或局部变量。在函数体中,您可以使用 声明局部变量var,但参数自动是局部的,因此不需要关键字将它们与全局变量区分开。

letconst被添加到语言中时,不需要更改参数的声明方式。let和之间的区别var没有用:let用于声明块作用域变量,但函数参数的块与整个函数相同。能够声明一个函数参数可能很有用const,所以你不能重新分配它,但我猜设计者认为它没有足够的用处来对语法进行这种更改(他们已经通过添加使其变得更加复杂)解构和默认值)。