如題!~array.indexOf('some')和array.indexOf('some')!=-1是一樣的嗎
3 回答

翻閱古今
TA貢獻1780條經驗 獲得超5個贊
是一樣的,這是另外一種寫法。~是位運算符。表示把array.indexOf('some')移位后-1就是0,而如果數(shù)組中含有some,結果就不會是0.然后再轉換成boolean.不過題目里的兩個表達式的邏輯似乎是反了.!!~array.indexOf('some')

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
~ 是 js 中的按位取反運算符
~1 = -2 ~0 = -1 ~-1 = 0
indexOf
是 array
的一個方法,如果后面的元素在這個 array
中,則返回對應下標,如果不在,則返回 -1
第一種形式, indexOf
方法后在按位取反,表示的是元素不在這個數(shù)組中
第二種形式,表示的是元素在這個數(shù)組中
所以兩個表示的意思相反
在 es6 之后,數(shù)組多了一個 includes
方法,array.includes(some)
返回一個 Boolean 值
,更加語義化。

互換的青春
TA貢獻1797條經驗 獲得超6個贊
你是指if
判斷嗎? 是不一樣的。
-1在if判斷中等同于true,也就是說會執(zhí)行if內的代碼塊。只有if(0)才不會執(zhí)行,其他數(shù)字都會執(zhí)行。
添加回答
舉報
0/150
提交
取消