为什么在searchString为空时,startsWith方法返回true。我认为在其他字符串方法中也是如此,例如includes,endsWith。如果我想避免它,我该怎么办,即在空searchString的情况下应该返回false。
var haystack = 'Hello World!', needle ='';
console.log( haystack.startsWith( needle ) );
答案 0 :(得分:3)
因为它旨在返回。空字符串表示存在0个字符。这就是为什么在某种程度上,每个字符串至少都以空白开头。
如果您仍想返回false
,可以这样做:
var haystack = 'Hello World!',
needle = '';
console.log(Boolean(needle) && haystack.startsWith(needle));

首先检查检查器字符串的布尔等价物,如果它为空,则返回值为false
。