调用命令的意思是什么(param1,param2,...)

时间:2012-06-06 09:49:11

标签: javascript

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

var x = (12, 34, 56)
在这种情况下,

是一个数字,它的值是56.谢谢。

这是我从电子书'Javascript for absolute Beginners'中读到的完整脚本:

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

3 个答案:

答案 0 :(得分:1)

如果条件         fridge.buttermilk [0]> = 1/2

很满意,然后发生了两件事。 冰箱。牛奶[0]减少了1/2 和dough.culturedMilk [0]等于1/2

试试这个......

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

并查看a和b的值

答案 1 :(得分:1)

看来你已经知道它意味着什么......评估每个操作数并返回最后一个结果。

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

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

在这种情况下,逗号运算符用于引入副作用。如果fridge.buttermilk[0] >= 1/2为真,则应将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语句会更容易阅读。

答案 2 :(得分:0)

例如这一行:

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

正如您在评论中看到的那样,将使用9 / 16,3 / 2 - 9/16 = 0,9375降低kefir-s值,并返回9/16作为culturedMilk的值。

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

相关问题