Skip to content

Commit

Permalink
[zh-cn]: Update translation of String.startsWith() (#15020)
Browse files Browse the repository at this point in the history
Co-authored-by: A1lo <[email protected]>
  • Loading branch information
JasonLamv-t and yin1999 committed Aug 10, 2023
1 parent 0afc60f commit d678596
Showing 1 changed file with 18 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,58 +5,47 @@ slug: Web/JavaScript/Reference/Global_Objects/String/startsWith

{{JSRef}}

**`startsWith()`** 方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 `true``false`
{{jsxref("String")}} 的 **`startsWith()`** 方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 `true``false`

{{EmbedInteractiveExample("pages/js/string-startswith.html")}}

## 语法

```plain
str.startsWith(searchString[, position])
```js-nolint
startsWith(searchString)
startsWith(searchString, position)
```

### 参数

- `searchString`
- : 要搜索的子字符串
- : 要在该字符串开头搜索的子串。不能是[正则表达式](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp#正则表达式的特殊处理)。所有不是正则表达式的值都会被[强制转换为字符串](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String#字符串强制转换),因此省略它或传递 `undefined` 将导致 `startsWith()` 搜索字符串 `"undefined"`,这应该不是你想要的结果
- `position` {{optional_inline}}
- : `str` 中搜索 `searchString` 的开始位置,默认值为 0
- : `searchString` 期望被找到的起始位置(即 `searchString` 的第一个字符的索引)。默认为 `0`

### 返回值

如果在字符串的开头找到了给定的字符则返回 **`true`**;否则返回 **`false`**
如果给定的字符在字符串的开头被找到(包括当 `searchString` 是空字符串时),则返回 **`true`**;否则返回 **`false`**

## 描述

这个方法能够让你确定一个字符串是否以另一个字符串开头。这个方法区分大小写。

## Polyfill
### 异常

此方法已被添加至 ECMAScript 2015 规范之中,但可能不能在所有的现行 JavaScript 实现中使用。不过,你可以用以下的代码段为 `String.prototype.startsWith()` 制作 Polyfill:
- {{jsxref("TypeError")}}
- : 如果 `searchString`[正则表达式](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp#正则表达式的特殊处理),则抛出该异常。

```js
if (!String.prototype.startsWith) {
Object.defineProperty(String.prototype, "startsWith", {
value: function (search, pos) {
pos = !pos || pos < 0 ? 0 : +pos;
return this.substring(pos, pos + search.length) === search;
},
});
}
```
## 描述

Mathias Bynens 在 Github 上提供了[一份更为稳定有效(完全符合 ES2015 规范),但性能略差、代码紧凑性微减的 PolyFill](https://github.com/mathiasbynens/String.prototype.startsWith)
这个方法能够让你确定一个字符串是否以另一个字符串开头。这个方法区分大小写

## 示例

### 使用 `startsWith()`
### 使用 startsWith()

```js
var str = "To be, or not to be, that is the question.";
const str = "To be, or not to be, that is the question.";

alert(str.startsWith("To be")); // true
alert(str.startsWith("not to be")); // false
alert(str.startsWith("not to be", 10)); // true
console.log(str.startsWith("To be")); // true
console.log(str.startsWith("not to be")); // false
console.log(str.startsWith("not to be", 10)); // true
```

## 规范
Expand All @@ -69,6 +58,7 @@ alert(str.startsWith("not to be", 10)); // true

## 参见

- [`core-js``String.prototype.startsWith` 的 polyfill](https://github.com/zloirock/core-js#ecmascript-string-and-regexp)
- {{jsxref("String.prototype.endsWith()")}}
- {{jsxref("String.prototype.includes()")}}
- {{jsxref("String.prototype.indexOf()")}}
Expand Down

0 comments on commit d678596

Please sign in to comment.