indexof()使用的是嚴格的 === 比較,即值和資料型別必須都相等。
js的資料型別基本分為六種:number、string、boolean、null、undefined、object(但object又可細分為funtion、array、date、···)
所以在判斷的出錯的時候,可以使用 typeof方法或 instanceof方法判斷一下型別,是否是型別不匹配問題。
typeof可以判斷 number、string、boolean、function、undefined型別,但arr, json, nul, date, reg, error 全部被檢測為object型別。
instanceof 方法能比較array、object、json、function、date、regexp、error型別,而且要求開發者明確地確認物件為某特定型別()。而且number, string和boolean沒有檢測出他的型別
js判斷型別可閱讀:
問題1:判斷乙個數字是否在陣列裡。
結果就是無論怎麼比較,都返回的是 -1,陣列找不到相等的值。
個人認為是js把定義的數字當成了字串型別了,所以無論怎麼比較,兩個型別都是不匹配的,結果就為-1;
所以解決辦法就是自己寫乙個for迴圈判斷
問題2:判斷ajax返回的資料是否在陣列裡
ajax返回的資料型別js並不會把它作為string而是object,所以返回的是-1;
參考:
JS中的indexOf方法
indexof 是js中內建的方法之一,它的功能大家都很熟悉 簡單來說就是得到資料的索引,對於正則不熟練的人,是個很不錯的方法。如果查詢到返回索引,反之返回 1 固定用法 因為indexof 在不同型別使用的時候可能有細節性的注意點 這裡我們對不同資料型別使用indexof的場景進行討論 其實就是s...
JS中的indexof 解釋
indexof 方法可返回某個指定的字串值在字串中首次出現的位置。stringobject.indexof searchvalue,fromindex 該方法將從頭到尾地檢索字串 stringobject,看它是否含有子串 searchvalue。開始檢索的位置在字串的 fromindex 處或字串...
JS中indexOf的用法
string.indexof char,startindex count 返回指定字元在原字串中的第乙個匹配項的索引。可指定字元開始檢索位置和指定長度的字元,若沒有找到該字元,則返回 1。也可以判斷陣列中是否包含某個值。示例1 查詢字串中某一字元從頭開始第一次出現的索引 var str hello ...