如题!~array.indexOf('some')和array.indexOf('some')!=-1是一样的吗
如题!~array.indexOf('some')和array.indexOf('some')!=-1是一样的吗
~ 是 js 中的按位取反运算符
~1 = -2
~0 = -1
~-1 = 0
indexOf
是 array
的一个方法,如果后面的元素在这个 array
中,则返回对应下标,如果不在,则返回 -1
第一种形式, indexOf
方法后在按位取反,表示的是元素不在这个数组中
第二种形式,表示的是元素在这个数组中
所以两个表示的意思相反
在 es6 之后,数组多了一个 includes
方法,array.includes(some)
返回一个 Boolean 值
,更加语义化。
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.4k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
6 回答1.2k 阅读
是一样的,这是另外一种写法。~是位运算符。表示把array.indexOf('some')移位后-1就是0,而如果数组中含有some,结果就不会是0.然后再转换成boolean.不过题目里的两个表达式的逻辑似乎是反了.!!~array.indexOf('some')