【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时才返回右侧的默认值,所以空值合并运算符是更加严格的。

结论:因此,如果您想要更严格的非空判断,建议使用??运算符。

posted @   wanglei1900  阅读(189)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示