jQuery の特別イベントの記事で、これまで見たことのない構文を見つけました。
var threshold = data && data.threshold || 1
私は次の前に見ました:
var threshold = data.threshold || 1
私の知る限りでは、data.threshold
またはその値がnull
に設定されている場合に設定し1
ます。最初の構文について説明してもらえますか?
jQuery の特別イベントの記事で、これまで見たことのない構文を見つけました。
var threshold = data && data.threshold || 1
私は次の前に見ました:
var threshold = data.threshold || 1
私の知る限りでは、data.threshold
またはその値がnull
に設定されている場合に設定し1
ます。最初の構文について説明してもらえますか?
&&
は よりも結合性が高い||
ため、最初の例は実際には次のことを意味します。
var threshold = (data && data.threshold) || 1;
これは、「真の値を持つ場合threshold
にdata.threshold
のみ設定し、それ以外の場合は 1 に設定する」と読むことができます。がnull/undefined/etc で、コードが最初にチェックせずにアクセスしようとすると、例外が発生します。この構文により、コンパクトな方法で両方を一度にチェックできます。data
data.threshold
data
data.threshold
data
英語でそれは意味します
データが真である場合
AND(&&
シンボル)
data.threshold
が真である場合は、に設定さthreshold
れdata.threshold
、
OR(それ以外の場合)は1に
設定さthreshold
れます。
真実とは、nullでも、未定義でも、0でもないことを意味します(とりわけ)。
&&
左側がfalseと評価された場合、左側を返します。それ以外の場合は右側を返します。
したがって、data
がfalseの場合は、を返すdate
ので、||
thenはに渡さ1
れます。
data
falseではないが、falseの場合、falsedata.threshold
と評価されるため、||
まだ渡さ1
れます。
data.threshold
trueの場合||
、左側を通過します。data.threshold