スキップしてメイン コンテンツに移動

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 です

コメント

このブログの人気の投稿

Chatの「メッセージは投稿者によって削除されました」を非表示にする方法

Chrome拡張機能を自作してやってみよう! ♪できるかな できるかな ・・・ 無理ぽ (´・ω・`) iframeの中に、実際のメッセージのやり取りが表示されるので、 $(function(){ $('iframe[name^="spareFrame"]').contents().find('[data-is-tombstoned="true"]').hide(); }); って書いたけど An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can escape its sandboxing. って言われてダメだったよ・・・

cron で実行されたコマンドから出力されたメッセージをメールで送信する方法

本題に入る前に、まずは、sh/bash系のシェルで標準出力と標準エラー出力をリダイレクトする方法から。 現在使用中のシェルを確認するには、 # echo $SHELL とすれば確認できる。 その他、利用できるシェルを確認するには # cat /etc/shells とする。 ■リダイレクトについて commandコマンドが出力を伴うコマンドの場合、commandコマンドの出力をresult.txtへ出力するには # command > result.txt コマンドの実効結果を別のコマンドの入力値とする場合は、|(パイプ)でつなげる。 # command1 | command2 ■標準出力と標準エラー出力について ・標準出力 正常結果やコマンド実行途中に出力されるメッセージの出力先。 ・標準エラー出力 異常終了時のメッセージやエラーメッセージなど、ユーザーに気づいてほしいメッセージの出力先。 ■標準出力と標準エラー出力の両方をリダイレクトする 先のcommandコマンドのリダイレクト例のうち、result.txtへのリダイレクトは、標準出力をリダイレクトしている。そのため、標準エラー出力はリダイレクトされず、仮にcommandコマンドが標準エラー出力へメッセージを出力した場合は、result.txtではなくコンソールへ出力(表示)される。 標準出力と標準エラー出力の両方をリダイレクトして、result.txtへ出力するには、 # command > result.txt 2>&1 とする。 なお、上の例を省略なしで記述すると # command 1> result.txt 2>&1 となる。 この「1」「2」の番号について。 ・1:標準出力。通常はコンソール画面。 ・2:標準エラー出力。通常はコンソール画面。 となっている。 ちなみに、「0」は「標準入力」。通常はキーボードからの入力。 例:標準エラー出力を error.log へ出力する。標準出力はコンソールへ表示する。 # command 2> error.log 例:標準出力は result.log 、標準エラー出力は error.log へ...

cron で bash を使うまでのお話

おー、ほぼ一年ぶりの更新だ・・・ 普段、何気に設定していた cron なんですが、 「PATHは通っていないから、フルパス書いて」 「#!/bin/bash はお呪い」 っていう程度の認識しかなかった。 ので、一からお勉強。 まず、cron の シェル等を確認するには、cron実行ユーザーで [root@localhost ~]# crontab -e * * * * * printenv >/var/tmp/env.txt ってやって1分待つ。 で、1分後に出来上がったファイルの中身を見てみる [root@localhost ~]# cat /var/tmp/env.txt ... SHELL=/bin/sh USER=root PATH=/usr/bin:/bin PWD=/root LANG=ja_JP.UTF-8 SHLVL=1 HOME=/root LOGNAME=root XDG_RUNTIME_DIR=/run/user/0 ... あー、shだ。 どおりで、/bin/bash って書かないと、動かない記述があるわけだ。