Сначала удалите фигурные кавычки - они вызовут ошибку SyntaxError. Вместо этого используйте прямые кавычки.
==
имеет более высокий приоритет оператора, чем ||
, а ||
оценивает слева направо, поэтому исправляя кавычки, ваш код эквивалентен:
if ((((browser == 'chrome') ||'firefox') ||'safari') ||'opera')
Если браузер chrome, это приводит к
if ((((true) ||'firefox') ||'safari') ||'opera')
if (true)
В противном случае это приводит к
if ((((false) || 'firefox') ||'safari') ||'opera')
if (((false || 'firefox') ||'safari') ||'opera')
Если левая часть ||
является ложной , он будет оцениваться по значению с правой стороны. В противном случае, если левая часть ||
верна, она будет соответствовать значению с левой стороны. Таким образом, он разрешается следующим образом:
if (((false || 'firefox') ||'safari') ||'opera')
if ((('firefox') ||'safari') ||'opera')
if ('firefox')
И 'firefox'
- это правда, поэтому if
всегда будет работать.
Для того, что вы пытаетесь сделать, используйте .includes
вместо :
if (['chrome', 'firefox', 'safari', 'opera'].includes(browser))