我使用for循环有条件地迭代HTML输入并连接管道分隔的字符串。因为我不想要结束管道字符,所以我使用了foo.slice(0, -1)
。
我想到有可能没有输入,因此foo
将是一个空字符串。在这种情况下,我不确定foo.slice(0, -1)
是否跨浏览器安全,所以我尝试了这个:
var foo = "";
foo = foo.slice(0, -1);
Firefox的“浏览器控制台”没有出人意料地抱怨所以我假设某种边界检查正在进行但是想要确认。我知道像if (foo) …
这样的测试足以检查空字符串,但不确定是否有必要。我似乎无法在参考文献中找到任何相关内容:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
答案 0 :(得分:4)
根据ECMA 5.1 Specifications for Array.prototype.slice
,如果结尾是负数,那么将使用最大长度+结束指数和零。
如果
relativeEnd
为否定,则最后为max((len + relativeEnd),0);
,最后为min(relativeEnd,len)
。
因此,它会安全地使用0
来结束,即使该字符串为空并且您传递负索引。