0

为什么在 searchString 为空时,startsWith 方法返回 true。我认为在其他字符串方法中也是如此,例如包含、endsWith。如果我想避免它,我该怎么办,即如果 searchString 为空,它应该返回 false。

var haystack = 'Hello World!', needle ='';
console.log( haystack.startsWith( needle ) );
4

1 回答 1

3

因为它被设计为返回所以。空字符串表示存在 0 个字符。这就是为什么,在某种程度上,每个字符串至少以空白开头。

如果你仍然想返回false,你可以这样做:

var haystack = 'Hello World!',
  needle = '';
console.log(Boolean(needle) && haystack.startsWith(needle));

首先检查检查器字符串的布尔等效项,如果它为空,则返回值变为false.

于 2018-03-30T03:18:53.177 回答