私はこの冗長な三項演算子構文を使用する代わりにPHP 5.3で知っています:
startingNum = startingNum ? startingNum : 1
...必要に応じて、3項演算子に簡略構文を使用できます。
startingNum = startingNum ?: 1
そして、私はjavascriptの三項演算子について知っています:
startingNum = startingNum ? startingNum : 1
...しかし、速記はありますか?
みんなありがとう!
var startingNumber = startingNumber || 1;
あなたが探しているもののようなもの、未定義の場合はデフォルトです?
var foo = bar || 1; // 1
var bar = 2;
foo = bar || 1; // 2
ところで、これはオブジェクトを含む多くのシナリオで機能します:
var foo = bar || {}; // secure an object is assigned when bar is absent
||
は、遭遇した最初の真理値を返すため、C#の??
と同様に、合体演算子として使用できます。
startingNum = startingNum || 1;
はいあります:
var startingNum = startingNum || 1;
一般的に、expr1 || expr2
は次のように機能します( ドキュメント で述べたように):
true
に変換できる場合はexpr1
を返します。それ以外の場合、expr2
。を返します。したがって、Boolean
値とともに使用すると、||
は、いずれかのオペランドがtrue
の場合、true
を返します。両方がfalse
の場合、false
を返します。
var startingNum = startingNum || 1;
この場合、OR演算子を使用できます。
startingNum = startingNum || 1
次のように、nullの条件がある場合
startingNum = startingNum ? startingNum : null
「&&」を使用できます
startingNum = startingNum && startingNum
次のような3項を作成するには:
boolean_condition ? true_result : false_result
javascriptでは、次のことができます:
(boolean_condition && true_result ) || false_result;
例:
(true && 'green') || 'red';
=> "green"
(false && 'green') || 'red';
=> "red"
上記の答えは正しいです。 JavaScriptでは、次のステートメント:
startingNum = startingNum ? otherNum : 1
として表現することができます
startingNum = otherNum || 1
ここで説明されていない別のシナリオは、一致しない場合に値がfalseを返すようにする場合です。これのJavaScriptの短縮形は次のとおりです。
startingNum = startingNum ? otherNum : 0
しかし、それは次のように表現できます
startingNum = startingNum && otherNum
他の人がより一般的な答えを探している場合に備えて、別のシナリオをカバーしたかっただけです。