我在question on SO中看到了如下的比较:
(pNum != ('2','3','4','5','6','7','8','9'))
OP一直试图检查数字是否落在某个范围,但是这段代码是不准确的,因为它总是与括号内的最右边的值比较(即9)
这意味着当pNum = 2
比较将返回true
而不是false
时,OP会期望它能够像inArray
或in
那样工作。
我的问题是,在任何情况下,这种比较是否对任何实际情况都有用?
答案 0 :(得分:0)
我的问题是,在任何情况下,这种比较是否对任何实际情况都有用?
没有。如您所见,比较仅比较括号内的最后一项。所以它所能完成的只是让读者感到困惑。
如果您打算将变量与一组值进行比较,则可以使用array#includes
或array#indexOf >= 0
。类似的东西:
console.log(['2','3','4','5','6','7','8','9'].includes('2'));
console.log(['2','3','4','5','6','7','8','9'].includes('6'));
console.log(['2','3','4','5','6','7','8','9'].includes('9'));
// IE
console.log(['2','3','4','5','6','7','8','9'].indexOf('2') >= 0);
console.log(['2','3','4','5','6','7','8','9'].indexOf('6') >= 0);
console.log(['2','3','4','5','6','7','8','9'].indexOf('9') >= 0);