String.prototype.includes()
===========================

Метод **`includes()`** проверяет, содержит ли строка заданную подстроку, и возвращает, соответственно `true` или `false`.

Синтаксис
---------
```

str.includes(searchString[, position])
```

### Параметры

`searchString`

Строка для поиска в данной строке.

`position` Необязательный

Позиция в строке, с которой начинать поиск строки `searchString`, по умолчанию 0.

### Возвращаемое значение

**`true`**, если искомая строка была найдена в данной строке; иначе **`false`**.

Описание
--------

Этот метод позволяет вам определять, содержит ли строка другую строку.

### Чувствительность к регистру символов

Метод `includes()` является регистрозависимым. Например, следующее выражение вернёт `false`:


```js
"Синий кит".includes("синий"); // вернёт false
```

Примеры
-------

### Использование `includes()`


```js
var str = "Быть или не быть вот в чём вопрос.";

console.log(str.includes("Быть")); // true
console.log(str.includes("вопрос")); // true
console.log(str.includes("несуществующий")); // false
console.log(str.includes("Быть", 1)); // false
console.log(str.includes("БЫТЬ")); // false
```

Полифил
-------

Этот метод был добавлен в спецификации ECMAScript 2015 и может быть недоступен в некоторых реализациях JavaScript. Однако, можно легко эмулировать этот метод:


```js
if (!String.prototype.includes) {
  String.prototype.includes = function (search, start) {
    "use strict";
    if (typeof start !== "number") {
      start = 0;
    }

    if (start + search.length > this.length) {
      return false;
    } else {
      return this.indexOf(search, start) !== -1;
    }
  };
}
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-string.prototype.includes |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

String.prototype.contains
-------------------------

В Firefox с версии 18 по версию 39, этот метод назывался «contains». Он был переименован в «includes» в замечании Firefox bug 1102219 по следующей причине:

Как было сообщено, некоторые сайты, использующие MooTools 1.2, ломаются в Firefox 17. Эта версия MooTools проверяет существование метода `String.prototype.contains()` и, если он не существует, добавляет свой собственный. С введением этого метода в Firefox 17, поведение этой проверки изменилось таким образом, что реализация `String.prototype.contains()`, основанная на MooTools, сломалась. В результате это изменение было отключено в Firefox 17. Метод `String.prototype.contains()` доступен в следующей версии Firefox — Firefox 18.

MooTools 1.3 принудительно использует свою собственную версию метода `String.prototype.contains()`, так что использующие его веб-сайты не должны ломаться. Тем не менее, следует отметить, что сигнатура метода в MooTools 1.3 отличается от сигнатуры метода в ECMAScript 2015 (во втором аргументе). В MooTools 1.5+ сигнатура изменена для соответствия стандарту ES2015.

В Firefox 48, метод `String.prototype.contains()` был удалён. Следует использовать только `String.prototype.includes()`.

Смотрите также
--------------

* `Array.prototype.includes()` 
Экспериментальная возможность
* `TypedArray.prototype.includes()` (en-US) 
Экспериментальная возможность
* `String.prototype.indexOf()`
* `String.prototype.lastIndexOf()`
* `String.prototype.startsWith()`
* `String.prototype.endsWith()`