Почему метод startWith возвращает true, если searchString пуста. Я думаю, что то же самое и в других строковых методах, таких как includes, endWith. Что мне делать, если я хочу этого избежать, т.е. он должен возвращать false в случае пустой строки searchString.
var haystack = 'Hello World!', needle ='';
console.info( haystack.startsWith( needle ) );
Возможный дубликат Почему "abcd" .StartsWith ("") возвращает истину?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Потому что он рассчитан на возвращение. Пустые строки означают наличие 0 символов. Вот почему каждая строка, по крайней мере, начинается с пробела.
Если вы все же хотите вернуть false, вы можете сделать это так:
var haystack = 'Hello World!',
needle = '';
console.info(Boolean(needle) && haystack.startsWith(needle));Сначала проверьте логический эквивалент строки средства проверки, чтобы, если она пуста, возвращаемое значение стало false.
Вам не нужен Boolean. Пустая строка - ложь.
@Tushar - это правда, но тогда console.info выводит пустое значение для этого выражения.
возможно дублирование stackoverflow.com/questions/145509/…