Javascript中三元运算符的解释

时间:2015-11-18 06:34:21

标签: javascript regex

我一直在进行nodeschool的正则表达式冒险,我刚刚完成了捕获课程。

我的解决方案:

module.exports = function (str) {
    var x = /x=(\d+)/.exec(str);
    return x && x[1];
}

然而,参考解决方案

module.exports = function (str) {
    var x = /x=(\d+)/.exec(str);
    return x ? x[1] : null;
}

我真的很好奇最后一行意味着什么。 x零次或一次x[1]但我不知道: null;在这种情况下的含义。这是否意味着“if not null”?

2 个答案:

答案 0 :(得分:1)

这是ternary operator

(condition ? expressionIfConditionIsTrue : expressionIfConditionIsFalse)

这是

的捷径
if (expression) {
    // expressionIfConditionIsTrue   
} else {
    // expressionIfConditionIsFalse   
}

因此,如果正则表达式找到匹配项,则返回x[1],否则,函数返回null

答案 1 :(得分:1)

您是否听说过三元运营商?

语法:

condition ? true : false

所以在这里,

return x ? x[1] : null;

如果匹配,则应返回由组索引1提取的字符,否则应返回null。