“value == var”与“var == value”

时间:2017-03-29 08:32:32

标签: javascript if-statement

在很多地方,我看到开发人员正在进行value == var比较,如下所示:

if ('https' === location.protocol) {
   port = 8443;
   protocol = 'wss://';
   isSecure = true;
}

我知道a == bb == a相同,那么为什么人们使用value == var代替var == value

这有标准吗?如果是,那是标准方式?

1 个答案:

答案 0 :(得分:8)

您所看到的是yoda condition

尤达条件描述了相同的表达,但反过来了:

if ( 42 == $value ) { /* ... */ }
// Reads like: "If 42 equals the value..."

优点是

  

在表达式中放置常量值不会改变程序的行为(除非值计算为false - 见下文)。在使用单个等号(=)进行赋值而不进行比较的编程语言中,可能的错误是无意中分配值而不是编写条件语句。

请注意,它显然缺乏可读性。我个人不喜欢这种方式。