我正在使用JavaScript构建BODMAS计算器,并使用一些代码来迭代等式的所有项以找到某些数学运算符和数字。
var AddPresent = EquationTerms.search(5);
console.log(AddPresent);
如果字符串EquationTerms中存在数字5,它会将字符串中数字的索引/位置记录到浏览器的控制台。如果它不存在,则记录-1。虽然这不会干扰我的程序,但我很好奇:为什么它会记录-1,而不是未定义,或者为null? 我在网上搜索过,但没有找到解释原因的答案。我会很感激解释这一点的人。
答案 0 :(得分:4)
这是一个非常常见的约定,是从整数和null
不可互换的语言中继承的。
像C这样的强类型语言不允许从声明为返回整数的函数返回null
,因此需要返回一些表示“未找到”的整数。因为元素无法存在于负索引中,-1
是最明显的选择。
答案 1 :(得分:0)
-1表示"未找到匹配"。
它返回-1而不是" false"是字符串开头的一个针位于位置0,这相当于JS中的false。因此,返回-1可确保您知道实际上没有匹配。