有人可以解释什么“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', ...]
元素0
和1
不是你所说的“参数”,而是它们。
它从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等等。