JavaScript 基础
Document
运算符
深入数据和类型
函数进阶
原型、继承
类
浏览器存储
Web API
事件
错误处理
异步编程
网络请求
模块
练习
实例
工具与规范
软件架构模式
设计模式
JavaScript 中有一个条件运算符 ?
可以帮助我们简化 if
语句。
$$tip
条件运算符 ?
也被称为三元运算符,因为它是仅此一个拥有三个运算元的运算符。
$$
语法:
let result = condition ? expression1 : expression2
- condition:布尔值的判断条件,如果为
true
则执行表达式expression1
并返回值,false
则执行表达式expression2
并返回值。 - result:接收表达式返回的值。
买冰淇淋的例子则可以简化如下。
$$edit$$
$$jsdemo$$
let money = 10
money >= 20 ? alert("买个冰淇凌") : alert("买不起,回家")
由于 alert
函数没有返回值,以下再看一个有返回值的例子。
首先是用 if ... else
实现的例子:
$$edit$$
$$jsdemo$$
let age = prompt("你多少岁了?")
let result
if (age >= 18) {
result = "允许访问"
} else {
result = "请你关掉网站"
}
alert(result)
使用 ?
运算符则可以简化如下:
$$edit$$
$$jsdemo$$
let age = prompt("你多少岁了?")
let result = age >= 18 ? "允许访问" : "请你关掉网站"
alert(result)
不推荐的写法,把 age
和 result
也省略掉:
$$jsdemo$$
$$edit$$
alert(prompt("你多少岁了?") >= 18 ? "允许访问" : "请你关掉网站")
虽然行数变少了,但是会造成代码可读性变差。
练习
- 使用条件运算符改写以下语句。
$$jsdemo$$
$$edit$$
let n = Number(prompt("请输入一个偶数"))
if (n % 2 === 0) {
alert("对了对了")
} else {
alert("错了错了")
}
$$answer
$$jsdemo$$
$$edit$$
let n = Number(prompt("请输入一个偶数"))
n % 2 === 0 ? alert("对了对了") : alert("错了错了")
$$