我刚刚被送到这一点,我不能确定这个变量声明的最后部分:这个声明的结尾部分是做什么的?
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;
其三元if/else语句。
如果className.match(/ logged /)的计算结果为true,则返回true,否则返回false。
写
var u;
if(document.getElementById('myaccount').className.match(/loggedin/)) {
u = true;
} else {
u = false;
}
return u;
直列如果
condition_check ? result if true : result if false
这就是所谓的三元if语句的分类器的方法。
如果您我的帐户元素有一类 '的loggedIn',变量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';
}
大,感谢。非常简洁的缩短“if”! – zik
我完全同意这一点,但只是为了好玩而添加的:?:构造有时也被称为猫王操作符。看看角色,你会看到为什么:-) –