【问题标题】:Why does `search` return -1 and not undefined or null为什么`search`返回-1而不是未定义或null
【发布时间】:2015-12-11 06:16:14
【问题描述】:

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

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

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

【问题讨论】:

标签: javascript


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    -1 表示“未找到匹配项”。

    它返回-1而不是“false”的原因是字符串开头的针在位置0,相当于JS中的false。因此,返回 -1 可确保您知道实际上没有匹配项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多