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], '
');
} }
テストでオブジェクト定義後に論理演算を使用すると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;
ネットワーク上で「undefinedまたはnull式に適用すると、ランタイムエラーが発生します.」テストでは対応するブール値に変換され、エラーは発生しません.
JavaScriptでは',0,-0,null,false,NaN,undefinedを論理演算でfalseと理解しているが,同様に1つの式の演算が以上のいずれかの結果を生み出すと論理演算でfalseと考えられる.以下の例は説明できる.
[javascript] view plain copy print ?
var aFalse = ['', 0, -0, null, false, NaN, undefined];
if (aFalse.hasOwnProperty(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);//true
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と考えられる.以下の例は説明できる.