2011-10-22

JavaScriptのif文

JavaScript で if() を実験してみた。

実験ソースはこれ

var objArray = {'true':true, 'false':false,
                 1:1, 0:0, '-1':-1,
                 '"1"':'1', '"0"':'0', '"-1"':'-1',
                 'NULL':null, '"js"':'js', '""':''};
for (var i in objArray) 
{
    document.write('if (' + i + ') は ');
    if (objArray[i]) {
        document.write('true です');
    }
    else {
        document.write('false です');
    }
    document.write('<br />');
    for (var j in objArray) 
    {
        if (i === j) continue;
        
        document.write('if (' + i + ' == ' + j + ') は ');
        if (objArray[i] == objArray[j]) {
            document.write('true です');
        }
        else {
            document.write('false です');
        }
        document.write('<br />');
    }
}

結果はこれ

if (true) は true です
if (true == false) は false です
if (true == 1) は true です
if (true == 0) は false です
if (true == -1) は false です
if (true == "1") は true です
if (true == "0") は false です
if (true == "-1") は false です
if (true == NULL) は false です
if (true == "js") は false です
if (true == "") は false です
if (false) は false です
if (false == true) は false です
if (false == 1) は false です
if (false == 0) は true です
if (false == -1) は false です
if (false == "1") は false です
if (false == "0") は true です
if (false == "-1") は false です
if (false == NULL) は false です
if (false == "js") は false です
if (false == "") は true です
if (1) は true です
if (1 == true) は true です
if (1 == false) は false です
if (1 == 0) は false です
if (1 == -1) は false です
if (1 == "1") は true です
if (1 == "0") は false です
if (1 == "-1") は false です
if (1 == NULL) は false です
if (1 == "js") は false です
if (1 == "") は false です
if (0) は false です
if (0 == true) は false です
if (0 == false) は true です
if (0 == 1) は false です
if (0 == -1) は false です
if (0 == "1") は false です
if (0 == "0") は true です
if (0 == "-1") は false です
if (0 == NULL) は false です
if (0 == "js") は false です
if (0 == "") は true です
if (-1) は true です
if (-1 == true) は false です
if (-1 == false) は false です
if (-1 == 1) は false です
if (-1 == 0) は false です
if (-1 == "1") は false です
if (-1 == "0") は false です
if (-1 == "-1") は true です
if (-1 == NULL) は false です
if (-1 == "js") は false です
if (-1 == "") は false です
if ("1") は true です
if ("1" == true) は true です
if ("1" == false) は false です
if ("1" == 1) は true です
if ("1" == 0) は false です
if ("1" == -1) は false です
if ("1" == "0") は false です
if ("1" == "-1") は false です
if ("1" == NULL) は false です
if ("1" == "js") は false です
if ("1" == "") は false です
if ("0") は true です
if ("0" == true) は false です
if ("0" == false) は true です
if ("0" == 1) は false です
if ("0" == 0) は true です
if ("0" == -1) は false です
if ("0" == "1") は false です
if ("0" == "-1") は false です
if ("0" == NULL) は false です
if ("0" == "js") は false です
if ("0" == "") は false です
if ("-1") は true です
if ("-1" == true) は false です
if ("-1" == false) は false です
if ("-1" == 1) は false です
if ("-1" == 0) は false です
if ("-1" == -1) は true です
if ("-1" == "1") は false です
if ("-1" == "0") は false です
if ("-1" == NULL) は false です
if ("-1" == "js") は false です
if ("-1" == "") は false です
if (NULL) は false です
if (NULL == true) は false です
if (NULL == false) は false です
if (NULL == 1) は false です
if (NULL == 0) は false です
if (NULL == -1) は false です
if (NULL == "1") は false です
if (NULL == "0") は false です
if (NULL == "-1") は false です
if (NULL == "js") は false です
if (NULL == "") は false です
if ("js") は true です
if ("js" == true) は false です
if ("js" == false) は false です
if ("js" == 1) は false です
if ("js" == 0) は false です
if ("js" == -1) は false です
if ("js" == "1") は false です
if ("js" == "0") は false です
if ("js" == "-1") は false です
if ("js" == NULL) は false です
if ("js" == "") は false です
if ("") は false です
if ("" == true) は false です
if ("" == false) は true です
if ("" == 1) は false です
if ("" == 0) は true です
if ("" == -1) は false です
if ("" == "1") は false です
if ("" == "0") は false です
if ("" == "-1") は false です
if ("" == NULL) は false です
if ("" == "js") は false です

特に、"1","0","-1"とダブルクォートで括った場合、こんな感じに評価されるので注意。
if ("1") は true です
if ("1" == true) は true です
if ("1" == false) は false です

if ("0") は true です
if ("0" == true) は false です
if ("0" == false) は true です

if ("-1") は true です
if ("-1" == true) は false です
if ("-1" == false) は false です

0 件のコメント:

コメントを投稿

.htaccessで403を404で返す

久しぶりにリライトルールを書いたよ。 ドキュメントルートに.htaccessを置く場合の記述↓ # 403.html は実体がなくてよい。この設定をすることで、あっても使われなくなる。 ErrorDocument 403 /403.html # 独自の404ページをドキュメ...