if 语句中表达式的顺序[重复]

2023-11-24

可能的重复:
(bCondition == NULL) 和 (NULL==bCondition) 有什么区别?
Javascript 比较语句的缩小

我一直在写我的if像这样的声明:

if(variable1 === 1){}
if(variable2 > 10){}
if(variable3 == "a"){}

但我记得在某个地方读过(不幸的是我再也找不到那个页面了),if语句最好这样写:

if(1 === variable1){}
if(10 < variable2){}
if("a" == variable3){}

将变量放在表达式右侧的位置。

它是否正确?如果是这样,任何人都可以解释为什么这是正确的吗?另外,这适用于所有编程语言,还是仅适用于 javascript?

TIA


1 === variable1与表达式相同variable1 === 1用尤达符号写成**:常量列在左侧,变量列在右侧。

一些程序员选择使用它的主要原因是为了避免常见的编写错误if (a = 1)程序员的真正意思是if (a == 1) or if (a === 1)。以下代码行可以工作,但不符合预期(a被分配一个值并且if块总是会被执行):

if (a = 1) {}

以相反的方式编写的相同表达式将生成语法(或编译)错误:

if (1 = a) {}

程序员可以立即发现错误并修复它。

我不喜欢也不使用尤达表示法。我在编码时尽量睁大眼睛。

** 我无法找出这个术语的起源。

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

if 语句中表达式的顺序[重复] 的相关文章

随机推荐

  • Pandas MultiIndex DataFrame.rolling 偏移量

    为什么我不能使用偏移量rolling多索引数据框 例如 与 rng pd date range 2017 01 03 periods 20 freq 8D i pd MultiIndex from product A B C rng nam
  • 优先考虑组合而不是继承[重复]

    这个问题在这里已经有答案了 优先考虑组合而不是继承 是非常流行的短语 我读了几篇文章 每篇文章最后都说 当类之间存在纯粹的 IS A 关系时 请使用继承 一个例子来自本文 这里之间Apple and Fruit存在明显的 IS A 关系 即
  • 如何告诉 Vite 从构建中排除目录中的文件子集?

    我使用创建了一个新的 Vue 应用程序npm create vue 在运行时 该应用程序会获取配置并从中读取字符串 该字符串表示要在应用程序内呈现的组件的名称 这些动态组件位于 可插入 目录中 src App vue pluggables
  • Cholesky 分解 ScaLapack 错误

    我收到以下错误 但我不知道为什么 1 1 On entry to PDPOTRF parameter number 2 had an illegal value 1 0 On entry to PDPOTRF parameter numbe
  • 具有依赖关系的静态库

    e exe与我的自定义静态库链接 c lib 它使用 Win32 API 中定义的w dll w dll位于C Windows System32 其导入库为w lib 位于 Windows SDK 目录中 壳w lib被列为额外的依赖 in
  • VS2022 17.2.0 Preview 2.0:访问项目等时出现T4模板序列化异常

    使用VS2022 17 2 0 Preview 2 0使用T4模板生成数据层 T4的一部分使用VS互操作 DTE来访问解决方案中的项目 下面的T4是一个测试 lt template debug false hostspecific true
  • 如何可视化 d3 力导向图布局中的节点组

    我正在寻找一种将组插入到我的力导向图形可视化中的方法 到目前为止我已经找到了三个相关的例子 Cola js这将需要添加另一个库 并可能需要改造我的代码以适应这个不同的库 这个街区 这很难解开 这张幻灯片来自 mbostock 的幻灯片 这不
  • Meteor:服务器端调试

    有谁知道调试服务器端代码的好方法 我尝试启用 Node js 调试 然后使用 node inspector 但它没有显示我的任何代码 我最终使用了 console log 但这非常低效 更新 我发现以下过程在我的 Linux 机器上有效 当
  • 从 Java 调用 python 模块

    我想使用 PythonInterpreter 从 Java 调用 python 模块中的函数 这是我的 Java 代码 PythonInterpreter interpreter new PythonInterpreter interpre
  • 默认情况下具有数学集合相等的集合类[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 HashSet不将设置相等语义用于默认相等操作 var a new HashSet
  • 用于编辑页眉和页脚的 WORD 2010 宏

    我只有基本的 VBA 经验 之前的宏经验主要是使用 WORD 2003 录制宏用于获取 GoToFooter 或编辑页脚 菜单命令并允许后续编辑 在 WORD 2010 中 此命令 以及许多其他命令 不会 记录 到宏 但在记录模式下 我确实
  • 为什么这个径向渐变没有完成圆?

    我正在尝试使用径向渐变在作为单选按钮的圆形元素内创建边框 基本的 CSS 如下所示 我不明白为什么红色渐变不围绕圆圈的整个圆周 当白色色标接近 100 时 顶部 右侧 左侧和底部会出现红色间隙 为什么会发生这种情况 以及如何在仍然使用径向渐
  • 是 C 还是 C++?

    我需要在 cpp c 源文件中使用自然对数函数 现在 我当然可以通过快速的谷歌搜索和简单的库解决方案来做到这一点 但我有点困惑 在cplusplus dot com网站的reference cmath log 下有一个如何使用日志功能的示例
  • JDialog标题的字体大小

    如何设置 JDialog 标题的字体大小 我在极高分辨率的显示器 5 兆像素 上显示 JDialog 但对话框标题不清晰 我需要在每个对话框的基础上执行此操作 因为该应用程序是多显示器的 有些对话框出现在较低分辨率的显示器上 有些对话框出现
  • .NET xsd 导入器创建不可序列化的类

    我正在使用 NETXSD EXE导入器从 XSD 文件集合生成 C 类 当我尝试将其中一个类序列化为 XML 时 它失败了 无效操作异常 当我深入研究它时 我发现创建的类之一似乎是错误的 这是相关的 XSD 代码
  • 正确使用 JPA criteria API、Predicates 和 CriteriaQuery 的 where 方法

    我正在尝试测试 JPA 存储库 这是我的客户端 测试代码 Test public void testFindBoitesByMultiFieldWithIdentifiantSet BoiteDataOnDemand dod new Boi
  • 如何在asp中每天运行cron作业网络核心应用程序?

    我有一个用 asp 编写的网络应用程序 NET MVC 核心 2 2 O 需要每天凌晨 3 00 运行计划作业 最好的方法是什么 我尝试过hangfire 它在一段时间后停止 我们需要设置IIS服务器始终运行 我google了一下 找到了
  • 如何使用 SimpleXMLElement PHP 替换 XML 节点

    我有以下 XML 字符串 1
  • 在另一个更大的数组中查找一个数组

    最近 我被要求为一项工作编写 3 个测试程序 它们将仅使用核心 Java API 和我选择的任何测试框架来编写 应在适当的情况下实施单元测试 虽然我根本没有收到任何反馈 但我想他们不喜欢我的解决方案 否则我会收到他们的来信 所以我决定在这里
  • if 语句中表达式的顺序[重复]

    这个问题在这里已经有答案了 可能的重复 bCondition NULL 和 NULL bCondition 有什么区别 Javascript 比较语句的缩小 我一直在写我的if像这样的声明 if variable1 1 if variabl