Javascript冒号(:)用于三元运算符的conditon

时间:2017-10-11 17:50:56

标签: javascript

function Menu(c) {
    var c = {
        names: c.names ? c.names : undefined,
        fonts: c.fonts ? c.fonts : undefined
    };

我是javascript的新手。 我发现这个代码的地方,我被困在这里。

所以我所知道的是 Questionmark(?)的符号是有条件(三元)运算符 它的语法是

condition ? value1 : value2 

所以Q.1)为什么':'用于条件和价值两者?

names: c.names ? c.names : undefined,

和for reference(names)给出了一个名字数组。

先谢谢。

1 个答案:

答案 0 :(得分:2)

第一个冒号是将键与您正在构建的对象中的值分开的内容(例如var o = { foo: "bar" })。

用括号重写它可能会有所帮助:

var c = {
    names: (c.names ? c.names : undefined),
    fonts: (c.fonts ? c.fonts : undefined)
};