1

私はjavascriptで次のコード行を持っています:

q && (c = q === "0" ? "" : q.trim());

どういう意味ですか?空の文字列または q.trim() の結果に等しいことは理解してcいますが、どういう意味q && ()ですか?

4

3 に答える 3

5

JavaScript はブール式を最適化します。qisの場合false、式の右辺は結果に関係ないため、まったく実行されません。したがって、これは次の短い形式です。

if( q ) {
    c = q === "0" ? "" : q.trim()
}
于 2012-09-13T13:54:25.967 に答える
3

これは、未定義/null/false 変数に対するガードです。

qが定義されていない場合、falseまたは に設定されてnullいる場合、コードは短絡し、エラーは発生しません。null.trim()

別の書き方は次のようになります。

if(q) {
  c = q === "0" ? "" : q.trim();
}
于 2012-09-13T13:54:35.060 に答える
0

この種の句を使用して、q が定義されているかどうかを確認できます。

于 2012-09-13T13:54:17.450 に答える