为什么jquery的indexOf不能以s开头呢?
var val="sensor";
var res=val.indexOf(“sensor");//为0
var res2=val.indexOf(“ensor");//为1
为什么jquery的indexOf不能以s开头呢?
var val="sensor";
var res=val.indexOf(“sensor");//为0
var res2=val.indexOf(“ensor");//为1
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
你提供的代码片段中出现了误解和语法错误。jQuery 本身并没有一个名为 indexOf 的方法。实际上,JavaScript 的原生字符串对象有一个 indexOf 方法用于查找子字符串在父字符串中的位置。这个方法与 jQuery 无关。
关于你的问题,indexOf 方法的行为完全取决于你传递的参数。该方法会返回指定子字符串在字符串中首次出现的位置,如果没有找到则返回 -1。参数的开头字母是否为 's' 不会影响其工作。如果你使用中文引号(“”),在JavaScript中会报错,因为它不能识别这种引号作为合法的字符串分隔符。正确的做法是使用英文引号("")或者英文双引号("“)。正确的示例代码如下:
var val = "sensor";
var res = val.indexOf("sensor"); // 应该返回 0,因为 "sensor" 字符串在 val 中确实开始于索引 0 处
var res2 = val.indexOf("ensor"); // 应该返回 1,因为 "ensor" 是从索引 1 开始出现在 val 中的子字符串(忽略第一个字符 's')
如果你的代码意图是检查字符串是否以 "s" 开头或者包含 "ensor",请确保使用正确的语法,并使用正确的引号风格。而且无论参数的开头字母是什么,indexOf 都会正常工作。只有当你要搜索的子字符串不在目标字符串中或在不同的位置时,结果才会不同。这与参数的开头字母无关。