スカラーか配列かの判別

!= null を使う

    var x = 100;
    var y = [10, 20];
    var z = [[1, 2],
             [3, 4]];
    if (x[0] != null) alert("true"); else alert("false");      // false 配列ではない スカラー
    if (y[0] != null) alert("true"); else alert("false");      // true
    if (z[0] != null) alert("true"); else alert("false");      // true 

    if (y[0][0] != null) alert("true"); else alert("false");   // false 2次元配列ではない 1次元ベクトル
    if (z[0][0] != null) alert("true"); else alert("false");   // true  2次元配列

Array.isArray(変数)

次のような変数があります。

    var スカラー = 12;
    var 一次元配列 = [ 10,20,30 ];
    var 二次元配列 = [
        [ 0, 1, 2],
        [10,11,12]
    ];

変数がスカラーか配列かは、Array.isArray(変数) で判別できます。

実際には、次の関数にします。

funciton 配列判別(変数) {
    if      (Array.isArray(変数) == false)     var 型 = 'スカラー';
    else if (Array.isArray(変数[0]) == false)      型 = '一次元配列';
    else                                           型 = '二次元配列';
    return 型;
}

変数が数値か文字列かの判別:正規表現の利用

function 数値文字列判別(変数) {
    var 正規表現 = /^[+,-]?([1-9]\d*|0)(\.\d+)?$/;
    if (正規表現.test(変数)) var 型 = "数値"; else 型 = "文字列";
    return 型;
}

次のような値を入れてみました。
[ 0, 12, 12.3, // 符号なし数値
 +21, -22,   // 符号あり
 31-32,     // 計算してしまう
 '', null, ,  // これらは文字列になる
 '+41', '+' ]  // '+41'は数値 '+'は文字列になる