ホームページ >ウェブフロントエンド >jsチュートリアル >3 つの異なるレベルのオペレーター&&_基礎知識

3 つの異なるレベルのオペレーター&&_基礎知識

WBOY
WBOYオリジナル
2016-05-16 17:38:211765ブラウズ

演算子は 3 つの異なるレベルで理解できます。

最初の理解レベル

オペランドが両方ともブール値の場合、「&&」は 2 つの値に対してブール AND 演算を実行します。

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

x==0 && y==0 // x と y が両方とも 0 の場合にのみ True が返されます

関係演算子は、「&&」よりも優先されます。

第 2 レベルの理解

「&&」は、true と false の値に対してブール AND 演算を実行できます。 (偽の値には、false、null、未定義、0、NaN、および "" が含まれます)。 JS でブール値を使用したい場合、式やステートメントはそれを true または false 値として扱うため、実際には、「&&」は常に true と false を返すとは限りません。

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

null && true // =>null : 左の演算 数値は false で、それを返します。式全体は false
true && (5 - 3) // =>2: 左のオペランドは true、右のオペランドは計算され、結果が返されます

第 3 レベルの理解

演算子が true 値または false 値を返したい場合、左オペランドの値に応じて 2 つの演算状況が発生します。演算結果が false の場合、演算子は最初に左オペランドの値を計算します。値、次に式全体。式の結果も false の値でなければなりません。このとき、「&&」は左側のオペランドの値を返すだけで、右側のオペランドは計算しません。左側のオペランドが true の場合、「&&」は右側のオペランドの値を評価し、それを式全体の結果として返します。

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

var o = {x:1};
var p = null;
o && o.x; // =>1 o の値を返します。o.x
p && p.y; // =>p.y; p.y
を計算する代わりに、値を返します。

「&&」の動作は「ショートサーキット」と呼ばれることもあり、多くのコードがこの機能を利用して条件付きでコードを実行していることがわかります。たとえば、次の 2 行のコードは完全に同等です:

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

if(a == b) stop( );
(a == b) && stop();// 上記のステートメントと同等

知識の拡張

演算子「||」にも、「&&」と同様に、いくつかの複雑な動作があります。

は、一連の代替式から最初の真理値式を選択するために使用されます:

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

// まず、 a が true かどうかを確認します。 value の場合は a を返し、そうでない場合は a
と同じ方法で b を処理します。// b が true 値の場合は b を返し、それ以外の場合は 5
var max = a b ||

この使用法を関数で使用して、パラメータのデフォルト値を提供できます:

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

function copy(o, p) {
p = p || // パラメータ p にオブジェクトが渡されない場合は、新しく作成されたオブジェクトを使用します
// ...
}

演算子の優先順位

同じ優先度を持つ演算子の場合、演算の順序は組み合わせの方向によって決まります。

簡単に覚えておくと次のようになります:! > 算術演算子 > >

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。