ホームページ >ウェブフロントエンド >jsチュートリアル >&& を解析する JavaScript ブール演算子 || ! _JavaScript スキル

&& を解析する JavaScript ブール演算子 || ! _JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 17:50:561135ブラウズ
1. 論理否定

論理否定は使用されません。 ECMAScript の任意のタイプの値に適用できることを示します。論理 NOT 演算はブール値 (true/false) を返します。この演算子は、まずオペランドをブール値に変換してから、それを否定します。

以下では、Boolean() 変換関数の一連のルールについて説明します。
数据类型 转换为true的值 转换为false的值
Boolean true false
String   任何非空字符串 ""(空字符串)
Number  任何非零数字值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined  无 undefined
データ型

true に変換された値
false に変換された値
ブール値
false
文字列 空でない任意の文字列
""(空の文字列)
番号 ゼロ以外の任意の数値 (無限大を含む)
0 および NaN
オブジェクト 任意のオブジェクト
null
未定義 なし
未定義

Boolean() 変換関数の単純な表現。 ----------! !


2. 論理 AND
論理 AND 演算子は 2 つのアンパサンド (&&) で表され、2 つのオペランドがあります。 論理 AND 演算は、ブール値だけでなく、あらゆる種類のオペランドに適用できます。オペランドの 1 つがブール値ではない場合、論理 AND 演算は必ずしもブール値を返すわけではありません。このとき、次の規則に従います。1. 最初のオペランドがオブジェクトの場合、 2 番目のオペランドが返されます。2. 2 番目のオペランドがオブジェクトの場合は、最初のオペランドの評価結果が true の場合にのみオブジェクトが返されます。オブジェクトの場合、最初のルールに従って 2 番目のオペランドが返されます。
4. 1 つの演算子が null の場合は null を返し、1 つの演算子が NaN の場合は NaN を返します。

論理 AND 演算は短絡演算です。つまり、最初のオペランドで結果を決定できる場合、2 番目のオペランドは評価されません。 (2 つの内部戻り操作として理解できます)。したがって、ルール 4、5、および 6 が矛盾する場合は、短絡動作原則に従う必要があります。




コードをコピーします

コードは次のとおりです。 var nul = null; 🎜>var na = NaN; test = na&&nul; document.write(test); //NaN



コードをコピーします


コードは次のとおりです。


var nul = null;
var na = NaN; test;
test = null&&na;
document.write(test); //null

それでは、まとめてみましょう。 && 操作は主に次のいくつかの原則に従います。1. 短絡操作の原則。2. 評価プロセス中に、コピーを生成するために変換されますが、戻り値は元の値です。


コードをコピー


コードは次のとおりです:


// 疑似コード
関数 &&(param1,param2){
bparam1 = Boolean(param1);
if (!bparam1) return param2 = Boolean(param2);
// パラメータがオブジェクトの場合に戻ります。参照されるポインタ値、関数は


3 と同じです。 論理和
論理和記号は 2 つの縦棒記号 (||) で表されます。 論理 OR 記号も短絡演算子です。実装プロセスは論理積の擬似コードを参照できます。一部のルールはここに記載されていません。 論理 OR は、evt = evt || などのパラメーターのデフォルトの処理によく使用されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。