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/)「等値」が明確に設定されていると、変数の実際値によって戻ります.