为什么这会解决为假:
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);
是不是因为我不止一次测试过val?这项工作:
var check = true;
var val = 'bottom-left';
( val !== "bottom-left" ) ? check = false : check = true;
alert('check: '+check);
修改
写作方式略有不同工作:
( val === 'top-left' || val === 'top-right' || val === 'middle-left' || val === 'middle-right' || val === 'middle' || val === 'bottom-left' || val === "bottom-right" ) ? check = true : check = false;
但我仍然不太明白其中的区别。要么正确解决?
编辑2:
JSFiddle:resolves false
答案 0 :(得分:0)
||
评估为左侧,否则评估为右侧。
val !== 'top-left' || val !== 'top-right' || etc
如果val
不是'top-left'
,则左侧是真的。所以情况确实如此。
否则val
'top-left'
,在这种情况下,它不是'top-right'
,因此条件也是如此。
它永远不会超越第二个,条件永远都是真的。