You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何"hello".indexOf("")与"hello".indexOf("h")返回值均为0?

为什么"hello".indexOf("")返回0?

这得从indexOf的匹配逻辑和空字符串的特性说起:

  • indexOf的核心是找子串首次出现的起始索引,而空字符串是长度为0的特殊字符串——它可以被视为"存在"在原字符串的任意位置:开头、每个字符之间、甚至结尾。
  • 当你用indexOf("")时,它会直接返回第一个能匹配到空串的位置,也就是字符串的起始索引0。毕竟从0这个位置开始,完全能匹配一个零长度的空串。
  • 打个比方:把"hello"拆成""h""e""l""l""o"",每个""都是空串的位置,第一个就在最开头的0索引处,所以结果自然是0。
  • 另外按照JS的规范,只要原字符串不是空串,查找空串都会返回0;要是原字符串也是空串,返回的也是0,因为两个空串完全匹配。

内容的提问来源于stack exchange,提问作者Pippal B.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:48:30