How do I test if a variable does not equal either of two values? How do I test if a variable does not equal either of two values? javascript javascript

How do I test if a variable does not equal either of two values?


Think of ! (negation operator) as "not", || (boolean-or operator) as "or" and && (boolean-and operator) as "and". See Operators and Operator Precedence.

Thus:

if(!(a || b)) {  // means neither a nor b}

However, using De Morgan's Law, it could be written as:

if(!a && !b) {  // is not a and is not b}

a and b above can be any expression (such as test == 'B' or whatever it needs to be).

Once again, if test == 'A' and test == 'B', are the expressions, note the expansion of the 1st form:

// if(!(a || b)) if(!((test == 'A') || (test == 'B')))// or more simply, removing the inner parenthesis as// || and && have a lower precedence than comparison and negation operatorsif(!(test == 'A' || test == 'B'))// and using DeMorgan's, we can turn this into// this is the same as substituting into if(!a && !b)if(!(test == 'A') && !(test == 'B'))// and this can be simplified as !(x == y) is the same as (x != y)if(test != 'A' && test != 'B')


ECMA2016 Shortest answer, specially good when checking againt multiple values:

if (!["A","B", ...].includes(test)) {}


In general it would be something like this:

if(test != "A" && test != "B")

You should probably read up on JavaScript logical operators.