为什么我们不在javascript中使用数据类型的函数参数?

时间:2016-05-18 06:29:56

标签: javascript

在javascript中,如果我必须使用变量foo,那么我必须先将其定义为var foo。但是当我们在函数中使用参数时,例如as:

function myfunc(bar) {  
  alert(bar);  
}

为什么我们不写function myfunc(var bar) {...}? javascript如何知道bar是变量?我记得在C ++中我们必须告诉编译器传递给函数的参数是一个变量

int myfunc ( char bar[] ) {...}

4 个答案:

答案 0 :(得分:4)

语法foo = bar不明确,可能是新变量的初始化,也可能是为现有变量赋值。由于这对于Javascript中的范围很重要,因此您需要明确使用var foo来初始化新变量。

另一方面,

function (foo)完全是明确的。 foo是函数参数,因此也可用作变量初始化函数。区分function (var foo)function (foo)是没有意义的,两者都会做同样的事情。

C中的{p> myfunc ( char bar[] )做了完全不同的事情; char这是类型提示。 Javascript没有类型提示。它只有var关键字(以及相关的letconst)来初始化新变量,但这与类型或类型提示没有任何关系。

答案 1 :(得分:2)

因为JS不支持它。就这么简单!

答案 2 :(得分:0)

  

javascript如何知道bar是变量?

因为函数的所有参数都是JavaScript中的局部变量。

与C ++相比,变量没有类型,因此您不必(也不能)指定函数参数的类型。

答案 3 :(得分:0)

正如James111所说。 Javascript不支持向输入参数添加类型。

如果您真的想要此功能,可以使用可编译为Javascript的语言。例如TypescriptDart

如果你想用纯Javascript编程你可以使用visual studio代码,因为它有一些nice commenting features用于标记输入参数