2

オブジェクトを定義する前に、オブジェクトが既に存在するかどうかを確認するために三項演算子を使用する理由を誰か教えてもらえますか?

var message = message || "hello",
    messageOverwritten = "Variable wasn't overwritten",
    messageOverwritten = messageOverwritten || "Variable wasn overwritten";

console.log( message );
console.log( messageOverwritten );​

/* 
 * Output
 *
 * -> hello
 * -> Variable wasn't overwritten
 */
4

2 に答える 2

3

ここで起こっているのは「または」ステートメントだけです。messageisnullまたはundefinedたとえばの場合、テスト時に評価され、falseorステートメントは右側に評価されます。次に、右側がに設定された値になりますmessage

このようなことを行う背後にある理由は、他の方法よりも冗長性が低いと考える人がいるためです。

if (!message)
    message = "hello";
于 2012-11-16T19:15:53.943 に答える
0

wsanville は、その構文が何をするのか、なぜ人々がそれを使用するのかについては正しいですが、あなたはそれが何のために役立つのかもっと尋ねているのではないかと思います. オプション変数のデフォルト値を設定するために主に使用されるのを見てきました。関数を例にとります

function foo(value){
   value = value || 'hello';
   console.log(value);
}

foo()その後、「こんにちは」またはfoo('goodbye')「さようなら」と言うことができます。

于 2012-11-16T20:04:00.510 に答える