0

電子書籍を読んでこのコマンドを見つけましたが、その目的と使用時期がわかりません。例:

var x = (12, 34, 56)

この場合のxは数値であり、その値は56です。ありがとうございます。

これは私が電子ブック「絶対初心者のためのJavascript」から読んだ完全なスクリプトです:

var fridge = {
buttermilk: [1/3, "cup"],
kefir: [1 + 1/2, "cup"],
yogurt: [4, "cup"],
};
var dough = {
hardWhiteWholeWheatFlour: [2, "cup"],
sugar: [1/3, "cup"],
madagascarVanilla: [1, "tsp"],
orangeZest: [1, "tbs"],
soda: [1, "tsp"],
tartar: [1, "tsp"],
orangeJuice: [1/2, "cup"],
culturedMilk: [1/2, "cup"],
egg: [1],
cranberries: [2/3, "cup"]
};
dough.culturedMilk[0] = fridge.buttermilk[0] >= 1/2 ? (fridge.buttermilk[0] -= 1/2, 1/2) :
fridge.kefir[0] >= 9/16 ? (fridge.kefir[0] -= 9/16, 9/16) :
fridge.yogurt[0] >= 10/16 ? (fridge.yogurt[0] -= 10/16, 10/16) :
alert("No cranberry bread for you!");
dough.culturedMilk;
// [0.5625, "cup"]
fridge.kefir;
// [0.9375, "cup"]
4

3 に答える 3

1

状態がfridge.buttermilk[0]>=1/2の場合

が満たされると、2つのことが起こります。冷蔵庫.buttermilk[0]は1/2に削減され、dough.culturedMilk[0]は1/2に等しくなります

これを試して...

     a = 10
     b = a < 20 ? (a -= 3, 2) : (a += 3, 5)

aとbの値を確認してください

于 2012-06-06T09:55:04.053 に答える
1

それが何を意味するのかはすでにご存知のようです...各オペランドを評価し、最後の結果を返します。

の場合(fridge.buttermilk[0] -= 1/2, 1/2)、式自体は条件演算子の一部です。

fridge.buttermilk[0] >= 1/2 ? (fridge.buttermilk[0] -= 1/2, 1/2) : ...

この場合、副作用を導入するためにコンマ演算子が使用されます。fridge.buttermilk[0] >= 1/2trueの場合、に1/2割り当てる必要がありますdough.culturedMilk[0]。しかし同時に、fridge.buttermilk[0]同様に更新する必要があります。

通常、次のような2つの式ステートメントを使用します。

if(fridge.buttermilk[0] >= 1/2) {
    fridge.buttermilk[0] -= 1/2;
    dough.culturedMilk[0] = 1/2;
}

ただし、作成者は条件演算子を使用したいので、コンマ演算子を使用して1つの式で両方の式を実行できます。の値を更新してfridge.buttermilk[0]返します1/2

ただし、これを行うことはお勧めしません。特にこの場合、ネストされた条件演算子を使用すると、従来のif-elseステートメントの方が読みやすくなります。

于 2012-06-06T09:55:50.427 に答える
0

たとえば、次の行:

(fridge.kefir[0] -= 9/16, 9/16)

コメントにあるように、ケフィアの値は9 / 16、3 / 2- 9/16 = 0,9375で減少し、culturedMilkの値として9/16を返します。

(param1、param2 ...)は式を評価し、最後の式を返します。(あなたの例のように)

于 2012-06-06T09:58:46.320 に答える