使用三元运算符而不是 if/else?
Using the ternary operator instead of if/else?
我最近一直在学习三元运算符,它是一个很好的快捷方式,而不是使用 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))
它说:意外的令牌{。
感谢任何帮助。
谢谢。
三元语法是conditional ? true : false
。您在这里组合了多个 if
条件三元组,但没有满足条件的 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
逻辑,您最好直接在这种情况下将 : "University"
作为默认值:
var age = 15;
function whichSchool(age) {
return (age < 13) ? "Elementary School"
: (age >= 13 && age <= 18) ? "Secondary School"
: "University"
}
console.log(whichSchool(15))
我最近一直在学习三元运算符,它是一个很好的快捷方式,而不是使用 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))
它说:意外的令牌{。
感谢任何帮助。
谢谢。
三元语法是conditional ? true : false
。您在这里组合了多个 if
条件三元组,但没有满足条件的 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
逻辑,您最好直接在这种情况下将 : "University"
作为默认值:
var age = 15;
function whichSchool(age) {
return (age < 13) ? "Elementary School"
: (age >= 13 && age <= 18) ? "Secondary School"
: "University"
}
console.log(whichSchool(15))