aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/javascript/reference/global_objects/string/includes/index.html
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
commit33058f2b292b3a581333bdfb21b8f671898c5060 (patch)
tree51c3e392513ec574331b2d3f85c394445ea803c6 /files/zh-cn/web/javascript/reference/global_objects/string/includes/index.html
parent8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff)
downloadtranslated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip
initial commit
Diffstat (limited to 'files/zh-cn/web/javascript/reference/global_objects/string/includes/index.html')
-rw-r--r--files/zh-cn/web/javascript/reference/global_objects/string/includes/index.html111
1 files changed, 111 insertions, 0 deletions
diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/includes/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/includes/index.html
new file mode 100644
index 0000000000..83ced4b38a
--- /dev/null
+++ b/files/zh-cn/web/javascript/reference/global_objects/string/includes/index.html
@@ -0,0 +1,111 @@
+---
+title: String.prototype.includes()
+slug: Web/JavaScript/Reference/Global_Objects/String/includes
+tags:
+ - JavaScript
+ - Method
+ - Monkey patching
+ - Prototype
+ - String
+ - String.prototype.includes()
+translation_of: Web/JavaScript/Reference/Global_Objects/String/includes
+---
+<div>{{JSRef}}</div>
+
+<p><strong><code>includes()</code> </strong>方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回 true 或 false。</p>
+
+<h2 id="Syntax" name="Syntax">语法</h2>
+
+<pre class="syntaxbox notranslate"><var>str</var>.includes(<var>searchString</var>[, <var>position</var>])</pre>
+
+<h3 id="参数">参数</h3>
+
+<dl>
+ <dt><code>searchString</code></dt>
+ <dd>要在此字符串中搜索的字符串。</dd>
+ <dt><code><var>position</var></code> {{optional_inline}}</dt>
+ <dd>从当前字符串的哪个索引位置开始搜寻子字符串,默认值为 <code>0</code>。</dd>
+ <dt>
+ <h3 id="返回值">返回值</h3>
+ </dt>
+ <dd>如果当前字符串包含被搜寻的字符串,就返回 <strong><code>true</code></strong>;否则返回 <strong><code>false</code></strong>。</dd>
+</dl>
+
+<h2 id="描述">描述</h2>
+
+<p>这个方法可以帮你判断一个字符串是否包含另外一个字符串。</p>
+
+<h3 id="区分大小写">区分大小写</h3>
+
+<p><code>includes()</code> 方法是区分大小写的。例如,下面的表达式会返回 <strong><code>false</code></strong> :</p>
+
+<pre class="notranslate"><code>'Blue Whale'.includes('blue'); // returns false</code></pre>
+
+<h2 id="兼容补丁">兼容补丁</h2>
+
+<p>这个方法已经被加入到 ECMAScript 6 标准中,但未必在所有的 JavaScript 实现中都可以使用。然而,你可以轻松地 polyfill 这个方法:</p>
+
+<pre class="notranslate"><code>if (!String.prototype.includes) {
+ String.prototype.includes = function(search, start) {
+ 'use strict';
+ if (typeof start !== 'number') {
+ start = 0;
+ }
+
+ if (start + search.length &gt; this.length) {
+ return false;
+ } else {
+ return this.indexOf(search, start) !== -1;
+ }
+ };
+}</code></pre>
+
+<h2 id="Examples" name="Examples">示例</h2>
+
+<h3 id="使用_includes">使用 includes()</h3>
+
+<pre class="notranslate"><code>var str = 'To be, or not to be, that is the question.';
+
+console.log(str.includes('To be')); // true
+console.log(str.includes('question')); // true
+console.log(str.includes('nonexistent')); // false
+console.log(str.includes('To be', 1)); // false
+console.log(str.includes('TO BE')); // false</code></pre>
+
+<h2 id="规范">规范</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Specification</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-string.prototype.includes', 'String.prototype.includes')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="浏览器兼容性">浏览器兼容性</h2>
+
+<p>{{Compat("javascript.builtins.String.includes")}}</p>
+
+<h2 id="String.prototype.contains">String.prototype.contains()</h2>
+
+<p>在 Firefox 18 - 39中,这个方法的名称叫 <code>contains()</code>。由于下面的理由,在{{bug(1102219)}}中,它被重命名为 <code>includes()</code> :</p>
+
+<p>据报道,在Firefox 17上,一些使用 <a href="http://mootools.net/">MooTools</a> 1.2的网站会崩溃掉。这个版本的MooTools会检查函数 <code>String.prototype.contains()</code>  是否存在,如果不存在的话,MooTools就添加它自己的函数。通过在Firefox 17中引入这个函数,检查更改的行为在一定程度上导致了基于MooTools的 <code>String.prototype.contains() </code>函数的代码实现中断。结果是,当 <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=789036#c32">MooTools的拓展</a> 导致 <a href="http://mootools.net/blog/2013/02/19/mootools-1-2-6-released">MooTools 1.2.6</a> 版本的发布,此实现在Firefox 17中不可用和 <code>String.prototype.contains()</code> 在随后一个版本Firefox 18上是可用的。</p>
+
+<p>MooTools 1.3会强制使用它自己版本的函数 <code>String.prototype.contains()</code>,因此,依赖它的网站不会崩溃掉。然而,你应该注意此方法在 <a href="http://mootools.net/core/docs/1.3.2/Types/String#String-method:-contains">MooTools 1.3 </a>签名和ECMAScript 6 签名中的不同(在第二个参数)。后来,<a href="https://github.com/mootools/mootools-core/blob/master/Docs/Types/String.md#note">为了与ES6标准一致在MooTools 1.5版本及以上更改了签名</a>。</p>
+
+<h2 id="相关链接">相关链接</h2>
+
+<ul>
+ <li>{{jsxref("Array.prototype.includes()")}} {{experimental_inline}}</li>
+ <li>{{jsxref("TypedArray.prototype.includes()")}} {{experimental_inline}}</li>
+ <li>{{jsxref("String.prototype.indexOf()")}}</li>
+ <li>{{jsxref("String.prototype.lastIndexOf()")}}</li>
+ <li>{{jsxref("String.prototype.startsWith()")}}</li>
+ <li>{{jsxref("String.prototype.endsWith()")}}</li>
+</ul>