0

これが質問の重複であることは間違いありませんが、正しい検索用語が見つかりません。

false の場合は定義されない省略形の変数宣言が必要です。私はそれが次のように見えたことを覚えています:

 var jamie = jamie : 'or maybe not';

これが理解しやすくなるなら、これは私が実際に達成しようとしていることです。

    if($('body').hasClass('loggedin')){
        var loggedin = true;
    }

覚えておいてください、私はそれが何であるか分かりません。

4

4 に答える 4

7
 var jamie = someVarThatCanBeUndefined || 'or maybe not';

上記を使用して合体を行うことができます

JavaScript に「null 合体」演算子はあります か?

の略記が必要な場合if

代わりにこれを試してください:

boolCondition ? "OneStringForTrue" : "AnotherForFalse"

これはしばしば

Conditional (Ternary) Operator (?:) (JavaScript)
于 2013-10-21T21:40:58.617 に答える
3
var jamie = jamie || 'or maybe not';

そのような単純な。

于 2013-10-21T21:41:32.620 に答える
1

hasClass はすでにブール値です:

var loggedin = $('body').hasClass('loggedin');
于 2013-10-21T21:52:32.683 に答える
1

まず、loggedIn を初期化する最も簡単な方法は、boolean である hasClass の戻り値を割り当てることです。

var loggedin = $('body').hasClass('loggedin');

あなたが覚えているのは、論理 OR 演算子を使用して、変数のデフォルト値を提供する簡単な方法です。これは、true と評価される最初の値、またはすべてが false の場合は最後の値を返します。

jamie = jamie || 'or maybe not'; // identical to if (!jamie) jamie = 'or maybe not';

最後に、|| 演算子は、変数の初期値が偽である特定のエッジ ケースで失敗します。

function f(number) {
  number = number || 10; // if number is not provided, default to 10
  console.log(number);
}
f(0) // whoops, number was provided, but it will log 10 instead.

nullそのような場合 (通常、 andに対してのみチェックしたい場合に発生しますundefined)、すべての偽の値ではなく、条件演算子を使用できます。

number = number != null ? number : 10;

これは少し冗長ですが、それでもデフォルトを提供する非常に洗練された方法です。

于 2013-10-21T22:09:30.750 に答える