gpt4 book ai didi

javascript - 如何理解这个逻辑和三元运算符的例子?

转载 作者:行者123 更新时间:2023-11-30 07:58:19 25 4
gpt4 key购买 nike

我理解三元运算符本质上是 if-else 语句的快捷方式,我也理解 && 是逻辑与。但是,我不明白这两者在下面的代码中是如何结合的。

我也试过输出,但没有用。我如何解释以下内容?

function greetUser(customerName, sex)  {
var salutation = sex && sex === "Man" ? "Mr." : "Ms.";
console.log("Hello, " + salutation + " " + customerName);
}

最佳答案

通常,三元运算符意味着:

condition ? (value returned if condition is true) : (value returned if condition is false)

在您的示例中,条件为 sex && sex === 'Man' ,这意味着变量中包含的值 sex truthystrictly equal 到字符串 "Man" .

这是分割:

var salutation;
if(sex && sex === 'Man') {
salutation = 'Mr';
} else {
salutation = 'Ms';
}

此外,在这个特定示例中,由于您使用的是严格相等(即===)比较,因此对sex 的真实性检查没有任何意义。 ,这是不必要的。你的条件可以是:

var salutation = sex === "Man" ? "Mr." : "Ms.";

解释:当使用 && 时,两个操作数都首先被强制转换为 bool 值,因此可以对它们的“真实性”进行 AND 运算。例如,假设 sex = 'Man' ,那么您的条件基本上是:

if('Man' && 'Man' === 'Man')

强制转换为 bool 值的是:

if(true && true)

这显然是多余的。 Read more about JavaScript type coercion .

在使用非严格比较运算符(例如 ==)时发生的其他情况下,此真实性检查是一种很好的安全检查, < , > ... 而不是 === .

简单来说,使用==在比较之前首先将两个项目强制为同一类型 lead to bugs .使用 ===立即返回 false如果类型不同,则更安全。

这是一个 another useful resource用于 JavaScript 比较。

关于javascript - 如何理解这个逻辑和三元运算符的例子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com