[ACTUALIZACIÓN: Ver @ respuesta de Juan, tiene más sentido de por qué un Minifier js haría esto, y debe ser la respuesta aceptada]
Como concepto general, esto es para evitar error del programador . Si estaba modificando el código manualmente y colocando la variable primero y el segundo constante, es posible escribir accidentalmente:
a == '40' || a = '13'
¡Uy! Acabamos de establecer a
en '13'
en lugar de comparar. Al poner la constante de la izquierda, se evita esta posibilidad:
'40' == a || '13' = a
arrojará una excepción porque no se puede poner una cadena constante en la mano izquierda de una operación de asignación.
Por lo tanto, en algunas escuelas de pensamiento, es mejor poner siempre la constante de la izquierda al hacer una comparación de igualdad con una constante. Parece que el cierre sigue esa práctica.
Se llaman "condiciones yoda".
Tenga en cuenta que mi preferencia personal es simplemente poner la constante a la derecha en la mayoría de los casos, porque el código tiende a leer mejor, por lo que no creo que la compensación sea lo suficientemente buena. Pero veo la lógica detrás de las condiciones de yoda.
Eso no explica por qué un compresor lo haría. OT: ¿Realmente eliminaron el [hilo en las condiciones de Yoda] (http://webcache.googleusercontent.com/search?q=cache:stackoverflow.com/questions/2349378/new-programming-jargon-you-coined+jargon+ acuñado)? – user123444555621
El compresor utiliza las mejores prácticas siempre que sea posible, solo porque puede hacerlo. (¿Ojalá alguien edite la versión minimizada?) –
Además, no estaba al tanto de ese hilo sobre las condiciones de yoda. Acabo de escuchar esto descrito de esa manera antes. –