在很多地方,我看到开发人员正在进行value == var
比较,如下所示:
if ('https' === location.protocol) {
port = 8443;
protocol = 'wss://';
isSecure = true;
}
我知道a == b
与b == a
相同,那么为什么人们使用value == var
代替var == value
?
这有标准吗?如果是,那是标准方式?
答案 0 :(得分:8)
您所看到的是yoda condition。
if ( 42 == $value ) { /* ... */ }
// Reads like: "If 42 equals the value..."
优点是
在表达式中放置常量值不会改变程序的行为(除非值计算为false - 见下文)。在使用单个等号(=)进行赋值而不进行比较的编程语言中,可能的错误是无意中分配值而不是编写条件语句。
请注意,它显然缺乏可读性。我个人不喜欢这种方式。