0

我刚收到这个,不确定这个变量声明的最后一部分:

var u = (document.getElementById('myaccount').className.match(/loggedin/)) ? 'true' : 'false';

据我所知,这是对字符串“loggedin”执行模式匹配,但结尾? 'true' : 'false';部分有什么作用?

我以前从未见过这样的东西,所以不确定......

4

5 回答 5

4

它是三元运算符,它可以是这样的:

result = condition ? value_if_true : value_if_false;

这只是以下的简写:

if(condition == true) {

    result = value_if_true;

} else {

    result = value_if_false;

}

condition部分可以是变量、函数或表达式,因此以下都是有效的:

result = myVariable ? value if true : value if false;

result = myFunction() ? value if true : value if false;

result = (myVariable > 10) ? value if true : value if false;
于 2012-06-01T10:28:37.693 回答
1

内联如果

condition_check ? result if true : result if false
于 2012-06-01T10:27:53.803 回答
0

它是一个三元 if/else 语句。

如果 className.match(/logged/) 计算结果为 true,则返回 true,否则返回 false。

一种更优雅的写作方式

var u;
if(document.getElementById('myaccount').className.match(/loggedin/)) {
    u = true;
} else {
    u = false;
}
return u;
于 2012-06-01T10:27:07.173 回答
0

它被称为三元 if 语句。

如果您的myaccount元素有一个类 ' login ',变量 u 将被设置为TRUE。否则它将被设置为 FALSE。

于 2012-06-01T10:28:04.387 回答
0

这是另一种声明 if 语句的方式

<condition> ? <return if condition is true> : <return if condition is false>

和这个一样

var u;
if (document.getElementById('myaccount').className.match(/loggedin/)){
   u = 'true'; 
} else {
   u = 'false';
}
于 2012-06-01T10:29:54.757 回答