JavaScriptの中の双感嘆符「!」の役割
1221 ワード
<br> var a;<br> var b = !!a;<br>
aデフォルトはundefinedです.aはtrueですaはfalseであるため、bの値はfalseであり、undefinedではなく、他の値でもなく、主に後続の判断に便宜を与える.javascriptは弱いタイプの言語であるため、強制的に該当するタイプに変換する必要があります.
<br> a=parseInt("1234");<br> a="1234"-0; // <br> b=1234+" "; // <br> c=someObject.toString(); // <br>
このうち第1種、第4種は顕式変換、2、3は陰式変換である.ブール型の転換、javascriptの規定は
false、undefinded、null、0、」はfalseです.
true、1、「somestring」、「Object」はtrueです.
nullやundefinedなど他に暗黙的に変換した値に対して、使います.オペレータはtrueの結果を生むので、二つの感嘆符の役割はこれらの値を「等価」のブール値に変換することです.
もう一度見てみます
<br> var foo;<br><br> alert(!foo);//undifined , true;<br><br> alert(!goo);//null , true;<br><br> var o={flag:true};<br><br> var test=!!o.flag;// var test=o.flag||false;<br><br> alert(test);<br><br>
この例では、undifinedとnullの場合、一つの感嘆符で返したのはtrueで、二つの感嘆符で返したのはfalseです.二つの感嘆符の役割は、変数の値(null/undifined/0/)「等値」が明確に設定されていると、変数の実際値によって戻ります.