重构 if...else 块以使用三元运算符

Refactor the if...else block to use a ternary operator

我的回答不符合代码挑战规范。

let favoritePhrase = 'Love That!';



 if (favoritePhrase === 'Love That!') {
   console.log('I love that!');
 } else {
   console.log("I don't love that!");
 }

// My refactored code  below
favoritePhrase ? console.log('I love that!') : console.log("I don't love that!");

您需要检查 favoritePhrase 的值:

favoritePhrase === 'Love That!' ? console.log('I love that!') : console.log("I don't love that!");

在您的代码中,favoritePhrase ? 的计算结果为真,因为它是一个非假值。

在三元运算符中,您只是检查变量的计算结果是否为 true,而不是它是否等于 Love That!...因此您需要从:[=14= 切换]

favoritePhrase ? console.log('I love that!') : console.log("I don't love that!");

favoritePhrase === 'Love That!' ? console.log('I love that!') : console.log("I don't love that!");

在您的示例中,您只是检查 favoritePhrase 是否为假。你想检查它是否等于 'Love That!'.

favoritePhrase === 'Love That!' ? console.log('I love that!') : console.log("I don't love that!");

您忘记检查该值是否等于 'I Love that'

(favoritePhrase === 'Love That!') ? console.log('I love that!') : console.log("I don't love that!");

conditional (ternary) operator ?: 的真正用途是 return 一个表达式,比如想要的字符串。

let favoritePhrase = 'Love That!';

console.log(favoritePhrase === 'Love That!'
    ? 'I love that!'
    : "I don't love that!"
);