"value == var"与"var == value"

Ash*_*Jha 7 javascript if-statement

在许多地方,我见过开发人员进行value == var比较,如下所示:

if ('https' === location.protocol) {
   port = 8443;
   protocol = 'wss://';
   isSecure = true;
}
Run Code Online (Sandbox Code Playgroud)

我知道那a == b是一样的b == a,为什么人们用value == var而不是var == value

这有标准吗?如果是的话,哪种标准方式?

Sur*_*tta 8

你所看到的是尤达的情况.

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

if ( 42 == $value ) { /* ... */ }
// Reads like: "If 42 equals the value..."
Run Code Online (Sandbox Code Playgroud)

优点是

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

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