本声明的结尾部分有什么作用

What does the end part of this declaration do?

本文关键字:什么 作用 尾部 声明 结尾      更新时间:2023-09-26

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

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元素有一个类'loggedin',变量将被设置为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';
}