codecamp

(2)命令行参数

要求

编写一个简单的程序,使其能接收一个或者多个命令行参数,并且在终端(标准输出 stdout)中打印出这些参数的总和。

提示

可以通过 process 这个全局对象来获取命令行中的参数。process 对象 拥有一个名为 argv 的属性,该属性是一个数组,数组中包含了整条命令的所有部分。首先,请先编写一个包含如下带简易代码的程序来熟悉一下:

console.log(process.argv)

通过执行命令 node program.js 并在后面多加几个参数,来运行我们的程序,比如:

$ node program.js 1 2 3

这样,就会得到这样一个数组:

[ 'node', '/path/to/your/program.js', '1', '2', '3' ]

需要考虑的问题是,如何去循环遍历这些代表数字的参数,从而得到他们的总和。process.argv数组的第一个元素永远都会是node,并且第二个参数总是指向程序的路径,所以,应该从第三个元素(index 是 2)开始,依次累加,直到数组末尾。

需要注意的是,所有 process.argv 中的数组的元素都是字符串类型的,因此,需要将它们强制转换成数字。可以通过加上 + 前缀,或者将其传给 Number() 来解决。例如: +process.argv[2] 或者 Number(process.argv[2])。

代码

var result = 0

for (var i = 2; i < process.argv.length; i++)
    result += Number(process.argv[i])

console.log(result)
(1)helloworld
(3)同步IO读写
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }