2015-11-18 27 views
0

我一直在經歷nodechool的正則表達式冒險,並且我剛完成捕獲課程。Javascript中的三元運算符的說明

我的解決辦法:

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;在這種情況下意味着什麼。它是否意味着「如果不爲空」?

回答

1

這是ternary operator

(condition ? expressionIfConditionIsTrue : expressionIfConditionIsFalse) 

這對

if (expression) { 
    // expressionIfConditionIsTrue 
} else { 
    // expressionIfConditionIsFalse 
} 

快捷因此,如果正則表達式創立一個匹配,那麼x[1]返回否則,該函數返回null

1

您是否聽說過三元運算符?

語法:

condition ? true : false 

所以在這裏,

return x ? x[1] : null; 

如果有匹配,它應該返回其由組索引1獲取否則它應該返回null的字符。