javascript - 试图理解 js 中的参数

标签 javascript

function f(message)
{

  console.log(message,arguments);

}

f("H", "e", "l", "l", "o");

它显示:H + ["H", "e", "l", "l", "o"]

问题:

为什么消息只显示H,而不是["H", "e", "l", "l", "o"]

最佳答案

您正在向函数传递 5 个参数:

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);

arguments 变量是一个特殊的变量,它包含了函数的所有参数。

因为您可以使用参数变量,所以您可以完全省略 arg1、arg2、arg3 部分:

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);

通常人们不会这样做,因为不清楚要传递给函数的内容。为了更加清楚你的函数应该返回什么以及你应该传递给它什么变量,你可以使用 JSDoc。许多 IDE 在自动完成/代码协助时使用它来显示有关该方法的更多信息。

/**
 * Gets user By Id
 * @param {Number} id
 * @returns {User}
 */
var getUserById=function(id){
    return u;
}

关于javascript - 试图理解 js 中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17461476/

相关文章:

javascript - Mocha 测试——完全完成 "before",然后运行 ​​ "it"s

javascript - 单击功能可显示悬停叠加层 - 单击时显示,但第二次单击时不会消失

javascript - 是否可以在 JavaScript 中编写数字 swap() 函数?

javascript - 如何将自定义排序应用于数组?

javascript - 插入 Javascript 组件 - 如何处理 ‘configuration'

javascript - JavaScript API : How to calculate route? 的 HERE 映射

javascript - setTimeout 中的匿名函数不起作用

javascript - Raphael 不透明度在 IE 上不显示

javascript - 设置要下降的列的基值

javascript - Firebase 推送不添加而是替换