我期待這返回false,因爲第一個字符串是「通過/失敗」,並且傳遞到IndexOf的字符串是「Numerical Specification」。當比較兩個唯一字符串時,indexOf的結果爲true
我不理解這個函數的工作原理嗎?我認爲它檢查字符串A是否包含在字符串B中?
我期待這返回false,因爲第一個字符串是「通過/失敗」,並且傳遞到IndexOf的字符串是「Numerical Specification」。當比較兩個唯一字符串時,indexOf的結果爲true
我不理解這個函數的工作原理嗎?我認爲它檢查字符串A是否包含在字符串B中?
你可能是指使用"".contains
,它返回一個向上/向下布爾值,而不是匹配指數:
"abc".includes("b"); // == true;
"abc".includes("x"); // == false;
由於js中的-1
是「truthy」,因此您的indexOf()
用法不會作爲條件工作。
的的indexOf()方法返回在指定值的第一個出現的位置在一個string.This方法返回-1,如果要搜索的值決不會發生。
例如:
var str = "Hello world, welcome to the universe.";
var n = str.indexOf("welcome"); //output 13
Similiaryly:
var str = "Hello world";
var n = str.indexOf("welcome"); //output -1
在這個答案的缺失部分:-1是一個真值:) – niceman
indexOf()方法返回字符串中第一次出現指定值的位置。如果搜索的值永遠不會發生,則此方法返回-1。 – Smit
它的確如你所描述的那樣,但是你不檢查-1的返回值,只是它真的,-1。另外,代碼是文本。像這樣對待它。無法搜索或複製圖像。 –
Jack -1 is truthy,實際上每個非零值都是truthy(正數或負數),0是虛假:) – niceman