为什么我们不能在 JavaScript 中的函数括号内声明一个局部变量?

Why can't we declare a local variable inside of function parentheses, in JavaScript?

我不明白这个,因为 java 是我的第一门编程语言。

在java中,括号内的变量应该声明

例如

public int checkUserName(int minLength){
    //some codes 
}

但在 java脚本中

function checkUsername(var minLength){
//some codes
}

显示意外的令牌变量错误

我知道 Java 和 JavaScript 是两种不同的语言,但我只想知道为什么 JavaScript 不允许使用它。我知道这是不允许的我只是想知道为什么。

我问这个是因为我的 JavaScript 书没有解释为什么 JavaScript 不允许这样做。它只是说你应该这样写,但不是为什么。

当我开始学习第二语言时,我有很多类似的问题,但是当你学习第三语言等等时,你只是处理它:) 在每两种语言中你都会发现一些相似之处和一些不同之处

你不必在这里声明minLength

function checkUsername(var minLength) {
    //some codes 
}

尝试

function checkUsername(minLength) {
    //some codes 
}

您可能对 TypeScript 感兴趣,它毕竟是 javascript,但看起来与 java 非常相似。例如:

public checkUserName(minLength: int ): int {
    //some codes 
}

在您澄清的评论中:

I know [it isn't allowed] but I just wondered why isn't it allowed

因为在 ES2015 之前,它是完全多余且毫无意义的;只要有 minLength 就足够了,因为 JavaScript 的变量和参数没有类型化。此外,var 会产生误导,因为 minLength 不是一个变量,它是一个 参数 。 (在功能上,就函数代码而言,它们几乎是相同的,除了参数的初始值来自函数外部的明显区别;但它们 不是 同样的事情。)

在 ES2015 及更高版本中,有一个参数允许可选的 const 来指示参数的值永远不会被函数更改,但我还没有看到任何关于该高级的提案(到目前为止).