if(openmenu != para){ addClass(openmenu , 'collapsed'); } Soy un principiante de JS, quiero agregar un nombre de clase a un elemento después de una declaración if. Sin embargo, if(openmenu != para) y if(!openmenu == para) mostraron un resultado completamente diferente. ¿Alguien sabe por qué?
!openmenu == para se analiza como (!openmenu) == para , por lo que primero niega openmenu y luego verifica si es igual a para , que probablemente no es lo que desea hacer. Podrías escribir !(openmenu == para) que significaría lo mismo que openmenu != para .
!a == b invierte a valor de a . Por ejemplo, si es true , usando ! lo invertirá a false .
if(!true == false) es igual a if(false == false) que resulta true .
pero if(a != b) compara valores, digamos que a es verdadero y b es false , entonces if(true == false) => false valores no son los mismos. :)
En este caso, si a==null y b==false entonces !a = true .
Entonces !a == b es falso pero a!=b es verdadero. Espero que la respuesta te sea útil.