||ロジックまたは
&&論理 vs. 論理
条件判断では、それぞれ or と and を表します。
、JS式に表示され、対応する値に基づいてすることができます、対応する結果の操作
、論理またはX = A || B; Aの値が真または偽であることを最初に見て、Aが真であれば、XはAの値に等しく、Aが偽であれば、XはBの値に等しく、その逆です。
let x = 0 || 10;
console.log(x); //=>10
x = undefined || null;
console.log(x); //=>null
x = 10 || true;
console.log(x); //=>10
、X = A && Bで論理; まずAの値が真か偽かを確認し、Aが真の場合、XはBの値に等しく、逆にAが偽の場合、XはAの値に等しくなります。
x = 0 && 10;
console.log(x); //=>0
x = undefined && null;
console.log(x); //=>undefined
x = 10 && true;
console.log(x); //=>true
、動作が同時に発生する、論理的または論理的と、論理的と優先順位が論理的または論理的より高い
let x = 1 || 2 && 3 || 4 && 0 || 5;
//=>2 && 3 => 3 4 && 0 => 0 =>1 || 3 || 0 || 5
//=>1 || 3 => 1 1 || 0 => 1 =>1 || 5 => 1
console.log(x);//=>1
論理と2つの条件は、どちらか一方だけが真であれば実行可能です。
if (1 === 1 || 2 > 2) {
// 条件が成立する:複数の条件のうち1つが成立する限り、全体が成立する
}
論理またはすべての条件が成立している必要があります。
if (1 === 1 && 2 > 2) {
//条件が失敗している:全体が真になるためには、すべての条件が成立する必要がある
}
, 実際のアプリケーションシナリオ
- 1.論理orは一般的にデフォルト値を割り当てるために使われる
- 2.ロジックと一般的に関数実行判定で使用される
```
function sum(x, y) {
//1. 形式パラメータを定義し、実パラメータを渡さずに実行する。
// 要件:実パラメーターを渡さない場合、そのデフォルト値を0にしたい。
if (typeof x === "undefined") {
x = 0;
}
if (typeof y === "undefined") {
y = 0;
}
```
//2.推奨しない 厳密ではない
```
x = x || 0;
//=>値が渡されず、デフォルト値が未定義であるため、これも機能する。/
//=>左辺が偽の場合、返される値は、厳密でないことを除いて、右辺の値のままである
//=>パスが偽である/NaN/""/nullなども偽であり、この時点でも0に等しいとする
y = y || 0;
return x + y;
}
sum();
```
```
let obj = {
name: ' '
};
let age = obj.age || 25;
//=>意味は、OBJにAGE属性がない場合である。
//=>デフォルト値を25とする
```
```
function func(callback) {
// 1.callback: コールバック関数を与え、ユーザーにfuncの実行を要求する。
//=>または、何もコールバックを渡さない=undefined/
if (typeof callback === "function") {
callback();
}
```
//2.厳密ではない、推奨されない
callback && callback();
//=>も厳密ではなく、ユーザーが他の非機能値を渡した場合に真を表すことができる。
//=>しかし、関数として実行することもできない。
}
func();
func(function () {
});
```