jsでは-1、{}に対応するブール値を判断します.

1864 ワード

一般的には、−1、{}に対応するブール値はfalseであるべきであるが、jsにおいては、上記2つの変数をif演算し、戻り値はいずれもtrueである.   
<script type="text/javascript">
    //if(0)   false
    if(-1){
        console.log("-1 is true");
    }else{
        console.log("-1 is false");
    }

    if({}){
        console.log("{} is true");
    }else{
        console.log("{} is false")
    }

    if({}.length){
        console.log("{}.length is true");
    }else{
        console.log("{}.length is false")
    }
</script>
コンソールの出力は以下の通りです.
-1 is true
{} is true
{}.length is false
ですから、これから条件判断をする場合、戻り値が数字であれば、良い処理方法は直接数値比較を行います.戻り値がオブジェクトの場合、空のオブジェクトかどうかを判断するには、オブジェクトのlength属性を用いて判断する方が良い.