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 で、コードが最初にチェックせずにアクセスしようとすると、例外が発生します。この構文により、コンパクトな方法で両方を一度にチェックできます。datadata.thresholddatadata.thresholddata
英語でそれは意味します
データが真である場合
AND(&&シンボル)
data.thresholdが真である場合は、に設定さthresholdれdata.threshold、
OR(それ以外の場合)は1に
設定さthresholdれます。
真実とは、nullでも、未定義でも、0でもないことを意味します(とりわけ)。
&&左側がfalseと評価された場合、左側を返します。それ以外の場合は右側を返します。
したがって、dataがfalseの場合は、を返すdateので、||thenはに渡さ1れます。
datafalseではないが、falseの場合、falsedata.thresholdと評価されるため、||まだ渡さ1れます。
data.thresholdtrueの場合||、左側を通過します。data.threshold