在JavaScript中,substring和slice都是用來提取字符串中的子串的方法,但它們有一些區別:
-
參數的含義:
- slice(start, end):從start位置提取到end位置之前的子串,包括start但不包括end。如果省略end參數,則從start位置一直提取到字符串末尾。
- substring(start, end):從start位置提取到end位置之前的子串,包括start但不包括end。如果start大于end,則會自動交換這兩個參數。
-
負數參數處理:
- slice和substring都支持傳入負數參數,表示從字符串末尾開始計算位置。比如slice(-3, -1)表示提取倒數第3個字符到倒數第1個字符之間的子串。
- 但是slice的負數參數處理更加靈活,如果start大于end,則返回一個空字符串;而substring會自動交換負數參數的位置。
-
返回值:
- slice和substring都返回提取的子串,不會改變原始字符串。
總的來說,slice和substring在功能上基本相同,但在參數處理和負數參數的處理上有一些不同。根據具體的需求,選擇使用哪個方法來提取子串。