2

jQuery の特別イベントの記事で、これまで見たことのない構文を見つけました。

var threshold = data && data.threshold || 1

私は次の前に見ました:

var threshold = data.threshold || 1

私の知る限りでは、data.thresholdまたはその値がnullに設定されている場合に設定し1ます。最初の構文について説明してもらえますか?

4

3 に答える 3

6

&&は よりも結合性が高い||ため、最初の例は実際には次のことを意味します。

var threshold = (data && data.threshold) || 1;

これは、「真の値を持つ場合thresholddata.thresholdのみ設定し、それ以外の場合は 1 に設定する」と読むことができます。がnull/undefined/etc で、コードが最初にチェックせずにアクセスしようとすると、例外が発生します。この構文により、コンパクトな方法で両方を一度にチェックできます。datadata.thresholddatadata.thresholddata

于 2012-11-14T14:34:08.520 に答える
3

英語でそれは意味します

データが真である場合
AND&&シンボル)
data.thresholdが真である場合は、に設定さthresholddata.threshold
OR(それ以外の場合)は1に
設定さthresholdれます。

真実とは、nullでも、未定義でも、0でもないことを意味します(とりわけ)。

于 2012-11-14T14:33:44.957 に答える
1

&&左側がfalseと評価された場合、左側を返します。それ以外の場合は右側を返します。

したがって、dataがfalseの場合は、を返すdateので、||thenはに渡さ1れます。

datafalseではないが、falseの場合、falsedata.thresholdと評価されるため、||まだ渡さ1れます。

data.thresholdtrueの場合||、左側を通過します。data.threshold

于 2012-11-14T14:33:34.510 に答える