Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js:process.argv与process.argv_Javascript_Process_Node.js_Argv - Fatal编程技术网

Javascript Node.js:process.argv与process.argv

Javascript Node.js:process.argv与process.argv,javascript,process,node.js,argv,Javascript,Process,Node.js,Argv,我注意到节点同时定义了process.argv和process.argv(大写)。文档中没有提到后者,到目前为止,我遇到的每一个例子都是同一个对象 ARGV只是历史遗留物,还是有目的?它们是相同的: node.cc // process.argv Local<Array> arguments = Array::New(argc - option_end_index + 1); arguments->Set(Integer::New(0), String::New(argv[0]

我注意到节点同时定义了
process.argv
process.argv
(大写)。文档中没有提到后者,到目前为止,我遇到的每一个例子都是同一个对象

ARGV
只是历史遗留物,还是有目的?

它们是相同的:

node.cc

// process.argv
Local<Array> arguments = Array::New(argc - option_end_index + 1);
arguments->Set(Integer::New(0), String::New(argv[0]));
for (j = 1, i = option_end_index; i < argc; j++, i++) {
  Local<String> arg = String::New(argv[i]);
  arguments->Set(Integer::New(j), arg);
}
// assign it
process->Set(String::NewSymbol("ARGV"), arguments);
process->Set(String::NewSymbol("argv"), arguments);
//process.argv
局部参数=Array::New(argc-option\u end\u index+1);
参数->设置(整数::新(0),字符串::新(argv[0]);
对于(j=1,i=option_end_index;i设置(整数::新(j),参数);
}
//分配
进程->设置(字符串::NewSymbol(“ARGV”),参数);
进程->设置(字符串::NewSymbol(“argv”),参数);
编辑(根据进一步的问题):

只有一个人可以肯定地告诉你(作者)——你可能可以在IRC上找到他(
IRC.freenode.net#node.js


通过查看其他符号,我猜它是为了一致性而添加的-
argv
env
似乎是仅有的两个同时具有小写和大写版本的符号。但是,
ENV
ENV
略有不同。也许作者认为,
argv
argv
可能与
env
env

进程有所不同。argv
v0.5.10
以来一直存在。每次使用process.env时,节点都会发出警告。env:
使用process.env而不是process.env
。想必这些都是不推荐的,但保留下来是为了向后兼容。@ricardo:酷,没有深入挖掘源代码+1:)我刚刚记得看到了这条消息:)结果发现它们确实不受欢迎:很容易弄糊涂,尤其是如果您使用spidermonkey
gjs
使用
ARGV
而不是
process.ARGV
。有趣的事实。不能与你争辩。:)