論理代入演算子
2713 ワード
JavaScript(ES 2021)は、現在の演算子と論理演算と割り当てを結合する機能をサポートしています
論理と課題
短絡評価
左の式が虚偽であるならば、それは短絡評価されます、そして、右の式は評価されません
論理OR課題
短絡評価
上の例から
空文字列や0などの値が偽の場合はチェックします.
論理的な割り当て
短絡評価
左側がどちらの場合も、論理式のない式式は左側の式に対して短絡されます
上記の例では、
&&=
, ||=
, and ??=
. 以前は、複合代入演算子は数学的でビット単位の操作でのみ可能でした.論理と課題
&&=
論理と代入x &&= y
演算子はx
本当です.例えば、let a = 1;
let b = 0;
a &&= 2;
console.log(a); // output: 2
b &&= 2;
console.log(b); // output: 0
短絡評価
左の式が虚偽であるならば、それは短絡評価されます、そして、右の式は評価されません
b
が0であるので、再割り当てされません.a &&= 2
はa && (a = 2)
, とa
それが本来真実であったので、再契約されます.論理OR課題
||=
論理和代入x ||= y
演算子はx
虚偽です.const a = 50;
const b = '';
a ||= 10;
console.log(a); // output: 50
b ||= 'string is empty.';
console.log(b); // output: "string is empty."
短絡評価
上の例から
a ||= 10
はa || (a = 10)
, しかし、値がa
TRUEであれば、短絡され、右側の割り当ては評価されません.空文字列や0などの値が偽の場合はチェックします.
||=
を使用する必要があります.それ以外の場合には、論理式の割り当て代入演算子を使用しなければなりません??=
をチェックするのに使われるべきですnull
or undefined
値.論理的な割り当て
??=
論理的な割り当てx ??= y
演算子はx
is null
or undefined
.const a = { limt: 50 };
a.limit ??= 10;
console.log(a.limit); // output: 50
a.speed ??= 25;
console.log(a.speed); // output: 25
短絡評価
左側がどちらの場合も、論理式のない式式は左側の式に対して短絡されます
null
nor undefined
. 上記の例では、
a.limit
は値が50であるので定義されませんnull
or undefined
. a.speed
はundefined
, したがって、右手の式は評価されますa.speed = 25
, そして今a = {limit: 50, speed: 25}
.Reference
この問題について(論理代入演算子), 我々は、より多くの情報をここで見つけました https://dev.to/aarongoldsmith1/logical-assignment-operators-1g62テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol