我刚收到这个,不确定这个变量声明的最后一部分:
var u = (document.getElementById('myaccount').className.match(/loggedin/)) ? 'true' : 'false';
据我所知,这是对字符串“loggedin”执行模式匹配,但结尾? 'true' : 'false';
部分有什么作用?
我以前从未见过这样的东西,所以不确定......
我刚收到这个,不确定这个变量声明的最后一部分:
var u = (document.getElementById('myaccount').className.match(/loggedin/)) ? 'true' : 'false';
据我所知,这是对字符串“loggedin”执行模式匹配,但结尾? 'true' : 'false';
部分有什么作用?
我以前从未见过这样的东西,所以不确定......
它是三元运算符,它可以是这样的:
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;
内联如果
condition_check ? result if true : result if false
它是一个三元 if/else 语句。
如果 className.match(/logged/) 计算结果为 true,则返回 true,否则返回 false。
一种更优雅的写作方式
var u;
if(document.getElementById('myaccount').className.match(/loggedin/)) {
u = true;
} else {
u = false;
}
return u;
它被称为三元 if 语句。
如果您的myaccount元素有一个类 ' login ',变量 u 将被设置为TRUE。否则它将被设置为 FALSE。
这是另一种声明 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';
}