JavaScript 中 String.slice 和 String.substring 的區別

Tahseen Tauseef 2023年10月12日
  1. 什麼是 JavaScript 中的字串和原型
  2. 什麼是 JavaScript 中的 slicesubstring
  3. JavaScript 中 slicesubstring 之間的相似之處是什麼
  4. JavaScript 中 slicesubstring 之間的區別是什麼
JavaScript 中 String.slice 和 String.substring 的區別

在本教程文章中,我們將討論 JavaScript 中的 slice 和 substring 以及它們的區別和區別;本文將解決以下問題:

  • 什麼是字串和原型
  • 什麼是 slicesubstring
  • slicesubstring 之間有什麼相似之處
  • slicesubstring 之間有什麼區別

什麼是 JavaScript 中的字串和原型

讓我們從討論 String 物件開始。string 物件用於表示字元序列,通常用於需要表示為文字的資料。

注意
原始值不能有屬性或方法。

JavaScript 通過將原始值包裝在一個特殊的物件包裝器中來將它們視為物件,該物件包裝器提供了額外的功能,例如輔助方法和屬性。每個原始型別都有它的物件包裝器;字串型別稱為 String

讓我們把注意力集中在 prototype 上,一個 prototype 是一個包含所有 JavaScript 物件的全域性屬性。它允許向現有物件新增新方法和屬性。

function footballClub(name, stadium, founded) {
  this.name = name;
  this.stadium = stadium;
  this.founded = founded;
}
footballClub.prototype.firstTeamPlayers = 11;

const FCB = new footballClub('FC Barcelona', 'Camp Nou', 1899);
console.log(FCB.firstTeamPlayers);
// logs 11

輸出:

11

在上面的示例中,每個 footballClub 例項都將 firstTeamPlayers 屬性設定為 11。同樣,prototype 屬性允許你向字串新增新的屬性和方法。

什麼是 JavaScript 中的 slicesubstring

slicesubstring 是原型屬性,它們以函式的形式存在於所有 JavaScript 字串中。slicesubstring 函式提取字串的一部分並將其作為新字串返回。slice 方法不會改變原來的 string

它有兩個引數,第一個引數指定開始提取的起始索引(索引從 0 開始),第二個引數指定字串的結束索引(結束索引不作為提取的一部分)

let str = 'Gonna be extracted,Help!';
let slicedStr = str.slice(3, 8);
let substringStr = str.substring(3, 8);
console.log(slicedStr)     // logs: na be
console.log(substringStr)  // logs: na be

輸出:

na be
na be

JavaScript 中 slicesubstring 之間的相似之處是什麼

如果 start 等於 stop slicesubstring 都返回一個空字串。

let str = 'Gonna be extracted,Help!';
let slicedStr = str.slice(8, 8);
let substringStr = str.substring(9, 8);
console.log(slicedStr)     // logs:
console.log(substringStr)  // logs:

輸出:

如果 stop(第二個引數)不包括 slicesubstring 提取字元直到字串的末尾。

let str = "Gonna be extracted,Help!"; 
let slicedStr = str.slice(3);
let substringStr = str.substring(3);
console.log(slicedStr) // logs: na be extracted,Help!
console.log(substringStr) // logs: na be extracted,Help!

輸出:

na be extracted,Help!
na be extracted,Help!

如果 startstop 引數大於字串的長度,則將使用字串的長度而不是傳遞的引數。

let str = 'Gonna be extracted,Help!';
let slicedStr = str.slice(1, 100);
let substringStr = str.substring(1, 100);
console.log(slicedStr)     // logs: onna be extracted,Help!
console.log(substringStr)  // logs: onna be extracted,Help!

輸出:

onna be extracted,Help!
onna be extracted,Help!

JavaScript 中 slicesubstring 之間的區別是什麼

如果 start 引數大於 slice 中的 stop 引數,它將返回一個空字串,而如果是這種情況,substring 將交換這兩個引數。

let str = 'Gonna be extracted,Help!';
let slicedStr = str.slice(8, 3);
let substringStr = str.substring(8, 3);
console.log(slicedStr)     // logs:
console.log(substringStr)  // logs: na be

輸出:

na be

如果 start 引數或 stop 引數為負數或 NaN,則將其視為 substring 中的 0,而在 slice 中,如果 start 引數為負數,則設定字元字串的結尾。

let str = 'Gonna be extracted,Help!';
let slicedStr = str.slice(-1);
let substringStr = str.substring(-1);
console.log(slicedStr)     // logs: !
console.log(substringStr)  // logs: Gonna be extracted,Help!

輸出:

!
Gonna be extracted,Help!

相關文章 - JavaScript String