少し慣れてきた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
この記事が気に入ったらサポートをしてみませんか?