使用三元运算符而不是if / else吗?

时间:2018-08-07 23:04:47

标签: javascript ternary-operator

我最近一直在学习三元运算符,以及如何使用if / else运算符代替它是一个很好的捷径。

我一直在练习,这是一个程序,该程序可以根据年龄配置某人应该去的学校。

但是,当我运行代码时,它不起作用。

var age = 15;

function whichSchool(age) {
  return (age < 13) ? "Elementary School"
       : (age >= 13 && age <= 18) ? "Secondary School"
       : (age > 18) ? "University"
}

console.log(whichSchool(15))

它说:意外令牌{。

感谢您的帮助。

谢谢。

1 个答案:

答案 0 :(得分:2)

三元语法为conditional ? true : false。您已经在此处组合了多个if条件三元组,尽管对于满足条件 none 的逻辑都没有逻辑。要解决此问题,请在您的最终条件之后添加: false的后备行为:

var age = 15;

function whichSchool(age) {
  return (age < 13) ? "Elementary School"
       : (age >= 13 && age <= 18) ? "Secondary School"
       : (age > 18) ? "University"
       : "None"
}

console.log(whichSchool(15))

请注意,尽管上面的条件组合(某人年龄在13岁以下,在13到18之间或在18岁以上),但实际上false逻辑永远不会得到满足,最好还是简单地使用{在这种情况下,默认设置为{1}}:

: "University"