在JavaScript中,`substr()` 是一个字符串方法,用于从字符串中提取一部分子字符串。这个方法接受两个参数:开始索引和要提取的字符数。这两个参数都是必需的。下面是它的基本用法和特性:
### 基本语法:
```javascript
str.substr(startIndex, length);
```
### 参数说明:
* `startIndex`:必需。一个数值,表示开始提取字符的位置(从 0 开始计数)。如果该值大于字符串的长度或为负值,返回的将是空字符串。
* `length`:可选。一个数值,表示要提取的字符数。如果省略该参数或指定了一个大于字符串剩余长度的值,那么将返回从开始索引到字符串末尾的所有字符。
### 示例:
```javascript
let str = "Hello, world!";
let substrResult = str.substr(0, 5); // 返回 "Hello"
```
在这个例子中,我们从字符串的第 0 个位置开始提取,提取长度为 5 个字符的子字符串。因此返回的结果是 "Hello"。如果尝试使用超出字符串长度的索引或长度,`substr()` 方法会正常工作,但不会超出字符串的实际长度。也就是说,它不会抛出错误或异常。相反,它将返回从开始索引到字符串末尾的所有字符。但是要注意,这个方法已被弃用(尽管在大多数浏览器中仍然可用),推荐使用 `substring()` 或 `slice()` 方法作为替代。这两个方法提供了类似的功能,并且在所有现代浏览器中都有支持。