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 中的条件运算符 的相关文章

  • 单击输入[复选框]的标签将触发父级单击事件两次(淘汰)

    考虑这把小提琴 http jsfiddle net 9rkrahm6 我有一个
  • React js Stripe 结账不起作用

    我正在尝试在 React js 应用程序中呈现条带结账默认表单
  • 了解设置 JQuery 变量

    了解设置 JQuery 变量 最近 我通过在 StackOverflow 上遇到的另一个问题寻找帮助 了解到如何设置 JQuery 变量 如下所示 您可以通过简单地调用变量来创建输入字段 并且锚变量似乎也定义了样式 var clicked
  • 从数据 URI 解码 QR 码

    我尝试从数据 uri 中解码二维码 var dataUri data image gif base64 R0lGODdh9gD2AIAAAAAAAP ywAAAAA9gD2AAAC decodeQrCode dataUri cb 我已经尝试
  • 不和谐机器人 |不和谐.js |类型错误:无法读取未定义的属性“长度”

    我正在制作一个 Discord 机器人 并且正在使用 CodeLyon 的视频作为参考 该错误位于我的 message js 文件中 该文件包含以下内容 require dotenv config create cooldowns map
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • 如何抑制窗口鼠标滚轮滚动...?

    我正在开发嵌入页面中的画布应用程序 我有它 因此您可以使用鼠标滚轮放大绘图 但不幸的是 这会滚动页面 因为它是文章的一部分 当我在 dom 元素上滚动鼠标滚轮时 是否可以阻止鼠标滚轮在窗口上滚动 附加鼠标滚轮 不是 Gecko DOMMou
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • Meteor - 从客户端取消服务器方法

    我正在通过服务器方法执行数据库计数 用户可以选择他们希望如何执行计数 然后调用该方法 我的问题是 计数可能需要一些时间 并且用户可能会在方法运行时改变主意并请求不同的计数 有什么方法可以取消调用的方法并运行新的计数吗 我认为 this un
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 提交表单并重定向页面

    我在 SO 上看到了很多与此相关的其他问题 但没有一个对我有用 我正在尝试提交POST表单 然后将用户重定向到另一个页面 但我无法同时实现这两种情况 我可以获取重定向或帖子 但不能同时获取两者 这是我现在所拥有的
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win

随机推荐

  • @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