javascript - if 语句中表达式的顺序

标签 javascript if-statement operators

<分区>

Possible Duplicate:
What is the difference between these (bCondition == NULL) and (NULL==bCondition)?
Javascript minification of comparison statements

我一直这样写我的 if 语句:

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

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

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

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

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

TIA

最佳答案

1 === variable1 与用 Yoda 表示法编写的表达式 variable1 === 1 相同**:常量列在左侧,变量列在右侧手边。

一些程序员选择使用它的主要原因是为了避免编写 if (a = 1) 的常见错误,而程序员实际的意思是 if (a == 1)if (a === 1)。下面这行代码可以工作,但并不像预期的那样(a 被分配了一个值并且 if block 将始终被执行):

if (a = 1) {}

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

if (1 = a) {}

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

我不喜欢也不使用 Yoda 符号。我在编码时尽量睁大眼睛。

** 我无法找出这个词的来源。

关于javascript - if 语句中表达式的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14234417/

相关文章:

javascript - 如何在调整大小时从 Wordpress 中删除移动菜单但保留桌面菜单?

javascript - 重新编码fly-out menu函数使parent LI的 "sticky"

javascript - 从 AngularJS 中的同级组件传递数据

python - 如何以比以下更好的方式打印每个 t=1000 的值?

javascript - 当我向下滚动时,我的 JS 代码不执行

php - 需要 isset 和 !='

java - 这个递归函数如何得到这个输出?

ios - 如何在 swift3 中增加 String.Index?

php - AND、OR 输出错误结果

PHP 速记加法运算符 - undefined offset