调用命令是什么意思(参数1,参数2,..)



我读了一本电子书并找到了这个命令,但我不知道它的用途以及何时使用它。例:

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"]

看来你已经知道这意味着什么了...计算每个操作数并返回最后一个操作数的结果。

(fridge.buttermilk[0] -= 1/2, 1/2) 的情况下,表达式本身是条件运算符的一部分:

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

在这种情况下,逗号运算符用于引入副作用。如果fridge.buttermilk[0] >= 1/2为 true,则应将1/2分配给dough.culturedMilk[0] 。但与此同时,fridge.buttermilk[0]也应该更新。

通常你会使用两个表达式语句,比如

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

但由于作者想要使用条件运算符,因此可以使用逗号运算符在一个表达式中执行两个表达式。它更新 fridge.buttermilk[0] 的值并返回 1/2

我不建议这样做,特别是在这种情况下,使用嵌套条件运算符,传统的if-else语句会更容易阅读。

如果条件 冰箱酪乳[0]>= 1/2

满意了,那么两件事就发生了。冰箱酪乳[0]减少1/2和面团.培养牛奶[0] 等于 1/2

试试这个...

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

并查看 a 和 b 的值

例如这一行:

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

正如您在注释中看到的,将使用 9/16、3/2 - 9/16 = 0,9375 减小开菲尔-S 值,并返回 9/16 作为培养牛奶的值。

(param1, param2 ...) 计算表达式并返回最后一个表达式。(就像你的例子一样)

最新更新