有人可以解释什么“process.argv”在node.js的意思吗?

我目前正在学习node.js,我只是好奇这是什么意思,我正在学习,你能告诉我为什么这个代码做它的作用:

var result = 0; for (var i = 2; i < process.argv.length; i++){ result += Number(process.argv[i]); } console.log(result); 

我知道它增加了你添加到命令行的数字,但为什么“我”以2开头? 我了解for循环,所以你不必详细说明。

非常感谢你提前。

你可以用console.log(process.argv)解决这个问题。

它从2开始,因为process.argv包含整个命令行调用:

 process.argv = ['node', 'yourscript.js', ...] 

元素01不是你所说的“参数”,而是它们。

它从2开始,因为代码将运行

 node myprogram.js firstarg secondarg 

所以

 process.argv[0] == "node" process.argv[1] == "myprogram.js" process.argv[2] == "firstarg" 

在线文档

您的程序打印提供给节点脚本的“命令行参数”的数字值的总和。

例如:

 $ /usr/local/bin/node ./sum-process-argv.js 1 2 3 6 

process.argv的Node.js API文档 :

包含命令行参数的数组。 第一个元素是'node',第二个元素是JavaScript文件的名字。 下一个元素将是任何额外的命令行参数。

在上面的例子中,这些值是:

 process.argv[0] == '/usr/local/bin/node' process.argv[1] == '/Users/maerics/src/js/sum-process-argv.js' process.argv[2] == '1' process.argv[3] == '2' process.argv[4] == '3' 

另请参阅JavaScript的Number(...)函数/构造函数 。

当你像这样执行它时:

 node code.js <argument> <argument>.... 

它考虑到了所有的命令行调用。 对于process.argv[]数组将有["node","code.js","<argument>",...]
因为你的参数在数组中以索引2开始

process.agrv [i] – 在执行文件时基本上循环通过terminal中传递的命令行参数。 例如 – 如果你运行该文件
$ node prog.js 1 2 3,然后process.argv [0] = 1等等。