javascript - 为什么 `search` 返回 -1 而不是 undefined 或 null

标签 javascript

我正在使用 JavaScript 构建一个 BODMAS 计算器,并编写一些代码来遍历方程的所有项以找到特定的数学运算符和数字。

var AddPresent = EquationTerms.search(5);
console.log(AddPresent);

如果字符串 EquationTerms 中出现数字 5,它会将数字在字符串中的索引/位置记录到浏览器的控制台。如果不存在,则记录 -1。虽然这不会干扰我的程序,但我很好奇:为什么它记录 -1,而不是未定义或 null? 我在网上搜索过,但没有找到解释原因的答案。如果有人能解释这一点,我将不胜感激。

最佳答案

这是一个非常普遍的约定,从整数和 null 不可互换的语言中继承而来。

像 C 这样的强类型语言不允许您从声明为返回整数的函数返回 null,因此您需要返回一些表示“未找到”的整数。因为元素不可能存在于负索引处,所以 -1 是最明显的选择。

关于javascript - 为什么 `search` 返回 -1 而不是 undefined 或 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34217217/

相关文章:

javascript - 如何使用 JavaScript 为另一个域设置 cookie?

javascript - 如何在外部脚本中访问 ejs 变量

javascript - 为什么使用 `n===0`,因为 `-0===0` 和 `0===0` 都是 true?

javascript - 错误: window. XMLhttpRequest不是 Angular 中的构造函数

javascript - MAC 的谷歌 wifi 接入点地理位置

javascript - 显示事件箭头 onclick(垂直导航?)

javascript - 使用 javascript 检查 forEach 响应中所有条件的更有效方法

javascript - 无法在 Blazor 服务器端应用程序中使用 OnAfterRenderAsync 中的 JsRuntime.InvokeAsync

JavaScript 比较错误

javascript - 如何使用 jquery 隐藏或显示带有两个选择选项的输入