JavaScript 基础
Document
运算符
深入数据和类型
函数进阶
原型、继承
类
浏览器存储
Web API
事件
错误处理
异步编程
网络请求
模块
练习
实例
工具与规范
软件架构模式
设计模式
JavaScript 中有四种逻辑运行符, &&
(与)、 ||
(或)、 !
(非)、 ??
(空值合并)。它们被主要用于布尔值的运算。
&&(与)
当左右操作数都为 true
时返回 true
,否则返回 false
。
result = a && b
$$edit$$
$$jsdemo$$
alert(true && true) // true
alert(true && false) // false
alert(false && true) // false
alert(false && false) // false
||(或)
当左右操作数任意一个为 true
时返回 true
,都为 false
时才返回 false
。
result = a || b
$$edit$$
$$jsdemo$$
alert(true || true) // true
alert(false || true) // true
alert(true || false) // true
alert(false || false) // false
!(非)
返回一个相反的布尔值。
result = !value
$$edit$$
$$jsdemo$$
alert(!true) // false
alert(!false) // true
$$tip
逻辑运算符优先级: !
> &&
> ||
。
例: a && b || c && d
等同于 (a && b) || (c && d)
。
$$
练习
- 下面表达式的运算结果是什么?
true && !true
false || true && true || false
false || true && !true
$$answer
$$jsdemo$$
$$edit$$
alert(true && !true) // false
alert(false || true && true || false) // true
alert(false || true && !true) // false
$$
- 收集以下信息并帮助判断是否符合养老金申请标准。
- 姓名
- 年龄大于等于 65 岁
- 社保缴纳大于等于 10 年
$$demo <button onclick="collect()">申请养老金</button> <script> function collect() { let name = prompt("请输入你的姓名") let age = Number(prompt("请输入你的年龄")) let socialSecurityMonths = Number(prompt("请输入社保时长(年)"))
if (age >= 65 && socialSecurityMonths >= 10) {
alert(`${name}符合养老金发放标准`)
} else {
alert("不符合养老金发放标准")
}
}
</script> $$
$$answer
$$jsdemo$$
$$edit$$
let name = prompt("请输入你的姓名")
let age = Number(prompt("请输入你的年龄"))
let socialSecurityMonths = Number(prompt("请输入社保时长(年)"))
if (age >= 65 && socialSecurityMonths >= 10) {
alert(`${name}符合养老金发放标准`)
} else {
alert("不符合养老金发放标准")
}
$$
- 用户上班时间为周一至周五,每日早上 9 - 12 点,下午 14 - 17 点。询问用户周几和几点,判断是否处于工作时间。需要判断用户输入的时间区间是否准确,比如输入周 9 就要提醒不规范。
$$demo
<button onclick="judge()">作息判断</button> <script> function judge() { let day = Number(prompt("今天周几?(周日输入 7)")) let hour = Number(prompt("现在几点?(24小时制)"))
if (day < 1 || day > 7) {
alert("日期不符合规范")
} else if (hour < 0 || hour >= 24) {
alert("时间不符合规范")
} else {
if (
day <= 5 &&
((9 <= hour && hour < 12) || (14 <= hour && hour < 17))
) {
alert("现在是工作时间")
} else {
alert("现在是休息时间")
}
}
}
</script>
$$
$$answer
$$jsdemo$$
$$edit$$
let day = Number(prompt("今天周几?(周日输入 7)"))
let hour = Number(prompt("现在几点?(24小时制)"))
if (day < 1 || day > 7) {
alert("日期不符合规范")
} else if (hour < 0 || hour >= 24) {
alert("时间不符合规范")
} else {
if (
day <= 5 &&
((9 <= hour && hour < 12) || (14 <= hour && hour < 17))
) {
alert("现在是工作时间")
} else {
alert("现在是休息时间")
}
}
$$