Javascript 试图理解js中的参数
它显示:H+[“H”、“e”、“l”、“l”、“o”] 问题:Javascript 试图理解js中的参数,javascript,Javascript,它显示:H+[“H”、“e”、“l”、“l”、“o”] 问题: 为什么消息只显示H,而不显示[“H”、“e”、“l”、“l”、“o”]?您的函数f只有一个参数,并且您正在传递5个独立的值或参数,由于您只有一个参数来接收它,因此只有值为'H'的第一个参数才是唯一被接受的参数。消息是您要传递到的第一个参数函数,在本例中是“H”,参数,它是一个类似数组的对象,保存您传入的所有参数 一些信息: 这里发生的事情是,您将5个参数传递给f。由于函数中只有一个参数,因此只有第一个参数分配给消息 但是,如您
为什么消息只显示
H
,而不显示[“H”、“e”、“l”、“l”、“o”]
?您的函数f
只有一个参数,并且您正在传递5个独立的值或参数,由于您只有一个参数来接收它,因此只有值为'H'的第一个参数才是唯一被接受的参数。消息是您要传递到的第一个参数函数,在本例中是“H”
,参数
,它是一个类似数组的对象,保存您传入的所有参数
一些信息:
这里发生的事情是,您将5个参数传递给f。由于函数中只有一个参数,因此只有第一个参数分配给消息
但是,如您所知,其他四个仍然在参数伪数组中 您正在向函数传递5个参数:
function f(message)
{
console.log(message,arguments);
}
f("H", "e", "l", "l", "o");
arguments变量是一个特殊变量,包含函数的所有参数
因为可以使用arguments变量,所以可以省略arg1、arg2、arg3部分:
function test(arg1,arg2,arg3){
console.log(arg1);//=1
console.log(arg2);//=2
console.log(arg3);//=3
console.log(arguments);//[1,2,3,4,5]
}
test(1,2,3,4,5);
通常人们不会这样做,因为不清楚传递给函数的是什么。为了更清楚地说明函数应该返回什么以及应该传递哪些变量,可以使用JSDoc。许多IDE在自动完成/代码辅助时使用此选项来显示有关该方法的更多信息
function test(){
console.log(arguments[0]);//=1
console.log(arguments[1]);//=2
console.log(arguments[2]);//=3
console.log(arguments);//[1,2,3,4,5]
}
test(1,2,3,4,5);
函数f
只接受一个参数,即消息
。但是在函数调用过程中,您要传递5个参数,即“H”、“e”、“l”、“l”、“o”
。如果您想在消息中获得全部信息,请使用以下任一方法传递:
在单个字符串中f(“Hello”)
连接字符串f(“H”+“e”+“l”+“l”+“o”)
或者将其作为数组传递f([“H”、“e”、“l”、“l”、“o”)
arguments
变量是javascript的一种内部函数处理机制,即当您将参数传递给函数时,它会被分配给函数在其签名中定义的变量,但这些变量的数组列表也会保存在名为arguments的函数变量中。Message=H和arguments函数中传递的都是什么?为什么要传递错误数量的参数?
/**
* Gets user By Id
* @param {Number} id
* @returns {User}
*/
var getUserById=function(id){
return u;
}