JavaScript 中的条件运算符

2023-12-21

像这样的语句可以使用条件运算符吗?

(x == y) ? alert("yo!") : alert("meh!");

或者使用它来分配这样的值更正确吗?

z = (x == y) ? "yo!" : "meh!";

如果像语句一样使用它并没有错误,那么是否可以像这样添加多行代码来执行?对于多行代码使用 ifthen 和 switch 语句是否更正确?

(x == y) ? (alert("yo!"), document.write("woot!")) : (alert("meh!"), document.write("blah!"));

条件运算符有意简洁,对于赋值特别有用:

var a = x ? 1 : 2;

使用它们有条件地运行函数,虽然可能,但为了可读性,应该使用 IF/ELSE 语句来完成:

// This is possible but IMO not best practice:
X ? doSomething() : doSomethingElse();

虽然啰嗦,但大多数时候,这是更好的解决方案:

if (X) {
    doSomething();
} else {
    doSomethingElse();
}

IF/ELSE 结构的一个显着好处是您可以在每种条件下轻松添加额外的任务。

您的最后一个片段也是可能的,但它看起来有点冗长,而且可能更适合更传统的逻辑结构;就像 IF/ELSE 块一样。

也就是说,条件运算符仍然是可读的,例如

(something && somethingElse > 2) ?
   doSomeLongFunctionName()
   : doSomeOtherLongFunctionName();

最后,像许多事情一样,这取决于个人喜好。永远记住,您正在编写的代码不仅仅适合您;也适合您。其他开发者将来可能不得不费力地经历它;尝试使其尽可能具有可读性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 中的条件运算符 的相关文章

随机推荐

  • @DataJpaTest 中的存储库初始化为 null

    我正在尝试在 Spring Boot 应用程序中为存储库编写一些测试 但是存储库自动连接为null 测试类的代码如下 package jpa project repo import org junit Assert import org j
  • Ember.ArrayProxy 更改不触发车把 #each 更新

    我怀疑有一种方法可以更新 Ember Array 代理来触发 ember 的通知 但我不知道如何实现 我正在覆盖 内容 属性来更新数组 数组会更新 但视图不会更新 App items Ember ArrayProxy create cont
  • Python:更改 json 解码的列表类型

    在 Python 2 7 中我可以使用object pairs hook在内置 json 模块中更改解码对象的类型 有没有办法对列表做同样的事情 一种选择是遍历作为钩子参数获得的对象 并将它们替换为我自己的列表类型 但是还有其他更聪明的方法
  • 传入通知的增强意图服务警告

    收到通知后 我的日志中出现两个错误 EnhancedIntentService Service took too long to process intent com google android c2dm intent RECEIVE A
  • iOS 15 通讯通知图片未显示

    我一直在尝试将我的 本地和推送 通知更新为通信通知 当用户收到来自其朋友之一的通信事件时 我希望显示的通知包含该朋友的个人资料图片 就像新的 iMessage 应用程序一样 观看专门的 WWDC2021 会议后 我向我的 SwiftUI 应
  • 为什么不调用复制构造函数?

    在此代码中 include
  • 从 C# 调用 powershell cmdlet

    我正在尝试学习如何从 C 调用 PS cmdlet 并且遇到了 PowerShell 类 它对于基本使用来说工作得很好 但现在我想执行这个 PS 命令 Get ChildItem where Length gt 1000000 我尝试通过
  • RequestScoped bean CDI 上的 HttpServletRequest 注入

    我正在寻找一种方法来注入 RequestScoped自定义类到我的 StatelessJAX RS端点 我希望每次应用程序收到请求时 我的自定义类都会注入到我的 JAX RS 端点中 定制类 RequestScoped public cla
  • 使用 Puppeteer 检查元素是否被禁用

    我有一个按钮 其初始状态为disabled
  • Spritekit 和 OpenGL:平滑的烟雾轨迹

    我想在我的 Spritekit 游戏中实现这种效果 其中有一个smooth角色后面的踪迹 See the trail behind the coin in jetpack joyride And this trail behind the
  • 日历预订系统错误

    我有一个 PHP 的 日历预订系统 下面是它的代码片段 我正在运行WampServer2 4
  • 远程:导入错误:没有名为 gitlab 的模块

    我用python写了gitlab hook 并添加到 gitlab 服务器中的 post receive 挂钩 当我从笔记本电脑推送到远程源服务器时 出现以下错误 但当我在 gitlab 服务器中手动运行脚本时它会起作用 我该如何解决问题
  • 无法理解FluentWait中until()方法的实现

    The until 中的方法org openqa selenium support ui FluentWait已超载Predicate
  • 为什么选择结构而不是类?

    拥有 Java 背景 玩过 Swift 为什么要选择 Struct 而不是 Class 看起来它们是同一件事 只是结构提供的功能较少 那为什么选择它呢 根据非常流行的 WWDC 2015 演讲Swift 中的面向协议编程 video htt
  • dat.gui 如何用代码隐藏菜单

    我使用 dat gui 为我的 Three js 应用程序制作了一个菜单 它工作得很好 我还发现按 h 键我可以隐藏用 dat gui 创建的菜单 我的问题是如何使菜单直接从代码中出现 消失 var gui new dat GUI gui
  • (http) coreclr/dnxCore 中的 Web 请求提供程序?

    是否有提供程序可用于执行 Web 请求 基本 GET 下载coreclr net core Both System Net Webclient and HttpWebRequest HttpWebResponse不可用 我意识到它的目的是提
  • 从任何地方运行 powershell 脚本

    我目前正在编写 powershell 脚本 此脚本的目标是从 csv 文件导入数据 如果 Active Directory 中尚不存在该用户名 则从该文件创建新用户 我的问题是如何让这个脚本从任何位置运行 所以我所要做的就是输入脚本的名称
  • 如何使用 ElementTree 将未转义的字符串写入 XML 元素?

    我有一个字符串变量contents具有以下值
  • 下载文件 WKWebView ios

    我正在将我的应用程序从 UIWebView 迁移到 WKWebView 一切都很顺利 并且随着我的进一步修改 一切都正常 但是 我现在注意到我无法下载论坛附件 我正在使用 HCDownload 到目前为止一直对我来说非常完美 所以我知道它不
  • JavaScript 中的条件运算符

    像这样的语句可以使用条件运算符吗 x y alert yo alert meh 或者使用它来分配这样的值更正确吗 z x y yo meh 如果像语句一样使用它并没有错误 那么是否可以像这样添加多行代码来执行 对于多行代码使用 ifthen