Почему это решить, как ложь:Javascript considitional троичного оператора не правильно решения
var check = true;
var val = 'bottom-left';
(val !== 'top-left' || val !== 'top-right' || val !== 'middle-left' || val !== 'middle-right' || val !== 'middle' || val !== 'bottom-left' || val !== "bottom-right") ? check = false : check = true;
alert('check: '+check);
Это потому, что я тестирую Вэла более одного раза? Это работа:
var check = true;
var val = 'bottom-left';
(val !== "bottom-left") ? check = false : check = true;
alert('check: '+check);
EDIT:
Дать несколько иначе ДЕЛАЕТ работа:
(val === 'top-left' || val === 'top-right' || val === 'middle-left' || val === 'middle-right' || val === 'middle' || val === 'bottom-left' || val === "bottom-right") ? check = true : check = false;
Но я до сих пор не совсем понимаю разницу. Либо нужно правильно правильно править?
EDIT 2:
JSFiddle: resolves false
Что-то не так с вашей логикой, потому что выражение в parens всегда будет истинным, так как 'val' всегда будет'! == 'по крайней мере одному из этих значений, так как он может иметь только одно значение. Итак, как построено, это неразумное сравнение. – jfriend00
Вы должны использовать массив, а не массивный список тестов с тем же значением. https://jsfiddle.net/a603zqoL/1/ – Quentin
@Quentin. Очень верно. –