JavaScript論理非演算子

1922 ワード

JavaScriptの論理非(!)演算子は、1つの式に対して論理的非操作を実行します.その結果、式をtrueまたはfalseの2つの結果に強制的に変換します.構文はresult=!expression.式は、字面量、関数、オブジェクトです.
[javascript] view plain copy print ?
var aFalse = ['', 0, -0, null, false, NaN, undefined];
  • for (var i in aFalse) {

  • if (aFalse.hasOwnProperty(i)) {
  • document.write(aFalse[i], '-', !aFalse[i], '-', !!aFalse[i], '
    ');

  • }
  • }
  • var aFalse = ['', 0, -0, null, false, NaN, undefined];
    for (var i in aFalse) {
    	if (aFalse.hasOwnProperty(i)) {
    		document.write(aFalse[i], '-', !aFalse[i], '-', !!aFalse[i], '<br />');
    	}
    }

    テストでオブジェクト定義後に論理演算を使用するとtrueが返されます.Booleanパッケージクラスは、自身がfalse値を返すと、この変数に対して論理非演算を実行し、trueではなくfalseであることに注意してください.2回の論理非操作を実行しない限り.
    [javascript] view plain copy print ?
    var myObj = {}
  • document.write(!myObj);//false

  • document.write(!!myObj);//true
  • var myBoolean = new Boolean(false);

  • document.write(myBoolean);//false
  • document.write(!myBoolean);//false

  • document.write(!!myBoolean);//true;
    var myObj = {}
    document.write(!myObj); // false
    document.write(!!myObj); // true
    var myBoolean = new Boolean(false);
    document.write(myBoolean); // false
    document.write(!myBoolean); // false
    document.write(!!myBoolean); //true;

    ネットワーク上で「undefinedまたはnull式に適用すると、ランタイムエラーが発生します.」テストでは対応するブール値に変換され、エラーは発生しません.
    JavaScriptでは',0,-0,null,false,NaN,undefinedを論理演算でfalseと理解しているが,同様に1つの式の演算が以上のいずれかの結果を生み出すと論理演算でfalseと考えられる.以下の例は説明できる.