|
1
3
好。原因很直接。
把位置想象成
也许你在找
观察
你也不应该用
在上面的例子中,
|
|
|
2
3
不,索引从零开始。
(数组也是如此,尽管引用了字符串的文档,但仍将其用于示例)。 |
|
|
3
1
其他人都在说同样的话,但让我试着用另一种措辞来回答。 在javascript中,数组是从元素0开始索引的。因此,如果在开头找到的字符串qas,则有效的返回值将为0。如果字符串not found被报告为0,则您将不知道它是否在开头被找到或找到。-1永远不是字符串中某个位置的有效值。 至于你的测试
你可以用
以避免使用!==-1检验。 一般来说,array.indesof()的结果是重载的。结果包含函数结果和错误代码。此重载允许在测试中直接使用函数调用。但是,请考虑,如果函数调用在if语句中,则可能需要再次调用该函数,这是效率损失。如果在if之前对结果进行赋值,然后测试结果,则计算效率会更高。甚至没有内存开销,因为函数中的变量在堆栈上,如果保持变量为局部变量,则在函数返回时清除堆栈。 返回包含成功/失败标志和结果的结构的函数是一种简单的方法,可以泛化可能失败的函数调用,并且是一个方便的地方,可以在不复杂化要执行的简单测试的情况下进行异常处理。 |
|
|
4
0
因为在几乎所有的编程语言中,0都是数组的第一个位置。 |
|
5
0
|
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 1 年前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 1 年前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 1 年前 |