我刚收到这封信,并且不确定此变量声明的最后部分:
var u = (document.getElementById('myaccount').className.match(/loggedin/)) ? 'true' : 'false';
从我所看到的,这是为字符串“loggedin”执行模式匹配,但结束? 'true' : 'false';
部分的作用是什么?
我以前没见过这样的东西所以不确定......
答案 0 :(得分: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;
答案 1 :(得分:1)
内联如果
condition_check ? result if true : result if false
答案 2 :(得分: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;
答案 3 :(得分:0)
它被称为三元if声明。
如果 myaccount 元素的类别为“ loggedin ”,则变量u将设置为 TRUE 。否则它将被设置为FALSE。
答案 4 :(得分: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';
}