ECMAScript 2015 (ECMA-262
6th Edition) から既定の String.prototype.includes の Polyfill(互換コード)を提供します。
(ES6 で作られたメソッドですが、参考にした仕様は ECMAScript 2017 (ES8) になります。)
第一引数に指定した文字列が含まれていたら、true を返し、含まれなければ false を返します。
console.log('Hello, World!'.includes('Hello')); // true第二引数で検索を開始するインデックスを指定することが出来ます。
console.log('Hello, World!'.includes('Hello', 1)); // false (index 0 を飛ばして検索する為、HITしません)第二引数に指定されるインデックス値は整数化して解釈されます。
console.log('Hello, World!'.includes('World', 7.123)); // true
console.log('Hello, World!'.includes('World', 8.123)); // false第二引数に負の数が指定された場合、0 が指定された場合と同様に扱われます。
console.log('Hello, World!'.includes('Hello', -1)); // true第一引数に new RegExp を指定することは出来ません。
'Hello, World!'.includes(/Hello/); // TypeError: First argument to String.prototype.includes must not be a regular expressionString.prototype.includes は故意に汎用的ですが、this 値は null または undefined であってはなりません。
String.prototype.includes.call(null); // TypeError: String.prototype.includes called on null or undefined