少し慣れてきたJScript+WSH 3 JScript実行時に引数を渡す

はじめに

JSciprt実行時に引数を渡したくなることがあると思います。試してみました。

コード

execJS.bat

引数は順に1, 123, hoge, fuga, undefined, null としました

@echo off

cscript //nologo testArgument.js 1 123 hoge true undefined

testArgument.js

WScript.Argumentsで引数を取得できます。
引数は配列のように値が入っているのですが、[]ではなく()で値を参照します。
また、typeofにて変数の型を調べました。

arg = WScript.Arguments;

WScript.echo(arg.length);
WScript.echo(typeof(arg.length));


for(var i=0; i < arg.length; i++){
	WScript.echo(arg(i));		// arg[i]ではなくarg(i)
	WScript.echo(typeof(arg(i)));
}

実行結果

arg.lengthは数値型(number)でした。
また、arg(0)~arg(4)はすべて文字列型(string)でした。
つまり下記が分かります。
 ・引数で1, 123を指定しても数値型にならない
 ・引数でtrueを指定してもboolean型にならない
 ・引数でundefinedを指定してもundefined型にならない

object
5
number
1
string
123
string
hoge
string
true
string
undefined
string

おわりに

JScriptで引数取得してみました。すべて文字列型で取得していましたが、個人的には動きとしては違和感ないです。大抵の言語はこういう動作ではと思っています(勉強不足なだけかもですが)。
なので、引数で数字を入れた後に計算に使いたい場合なんかは、下記のようにparseIntを使って型を変更します。

var num = parseInt("123");
WScript.echo(num);		// => 123
WScript.echo(typeof(num));	// => number

この記事が気に入ったらサポートをしてみませんか?