jsの強制タイプ変換

718 ワード

今日は曲がりませんでした.次のエラーコードを書きました.

                //             
                if(b.indexOf('detail')){
                    this.getRportById()
                }
       本来はindexOf方法では-1以上の数字を返し、if条件で判断し、値が負の場合はデフォルトのブール値はfalseであり、getRport ByID関数を実行せずに要求を完了する.デバッグ時にこの関数の戻り値が-1であることを発見した時に、この関数は依然として呼出して、やっと自分がjsのif()条件に関するタイプの転換を混ぜたことを発見しました.ブール値に関する問題に変換します.
       どの値がif条件判定でfalseに変換されますか?trueに変換されますか?
       ほとんどの場合はtrueに変換されますが、少ない場合はfalseに変換されます.
       だから、主にfalseに変換される4つの状況を見ると、trueはその逆の状況です.
       1.数字0      2.NaN     3.空の文字列      4.nullまたはundefined(厳格に等しくない場合、undefined==null)
 
私が犯したミスは主にマイナスだとif条件で判断されてfalseに変換されると思いますが、数字型は0以外はtrueです!!!!!!!