【JavaSript 基础】条件语句和逻辑运算符作为标识符,实现开关的作用
if语句和逻辑与运算符&&
if语句和&&逻辑与运算符将数据类型作为标识符,来实现开关的作用,在实际使用中非常实用。首先来了解一个falsy概念。
falsy
"falsy"是一个JavaScript术语,用于描述在布尔上下文中被视为“false”的值。
在JavaScript中,以下值被视为“falsy”:
- false
- 0
- ''(空字符串)
- null
- undefined
- NaN
真假值的转换
数据类型 | 转换为true的值 | 转换为false的值(falsy) |
---|---|---|
Boolean | true | false |
String | "任何非空字符串" | ""(空字符串) |
Number | 任何非零数字值(包括无穷值) | 0和NaN |
Object | 任何对象(只要对象存在) | null(对象不存在时) |
Undefined | undefined转为false | undefined转为false |
混淆点
-
其中对象Object中除了undefined和null之外(计算为false),所有对象包括空对象{ }都计算为true,所有数组包括空数组[ ]都计算为true
-
字符串String中," "(字符串中一个空格),也会计算为true
MDN的描述
如果需要,作为第一个参数传递的值将转换为布尔值。如果省略或值0,-0,null,false,NaN,undefined,或空字符串(""),该对象具有的初始值false。所有其他值,包括任何对象,空数组([])或字符串"false",都会创建一个初始值为true的对象。
注意不要将基本类型中的布尔值 true 和 false 与值为 true 和 false 的 Boolean 对象弄混了。其值不是undefined或null的任何对象(包括其值为false的布尔对象)在传递给条件语句时都将计算为true。
逻辑运算符 和 空值合并运算符?? 之间的选择(5.10.2023更新)
当使用逻辑运算符(例如||和&&)或条件语句(例如if和while)时,遇到falsy中每种情况都会转为false,有时候这会出现意外。而空值合并运算符??只在左侧的表达式返回null或undefined时才返回右侧的默认值,所以空值合并运算符是更加严格的。
结论:因此,如果您想要更严格的非空判断,建议使用??运算符。
洗尽铅华始见金,褪去浮华归本真
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现