強制 JavaScript 深度複製字串

Tahseen Tauseef 2023年1月30日 2022年5月10日
  1. 什麼是深拷貝
  2. 在 JavaScript 中如何複製字串
  3. 在 JavaScript 中如何深度複製字串
強制 JavaScript 深度複製字串

本文將討論什麼是深拷貝,如何複製字串,以及在 JavaScript 中深拷貝字串。我們還將解決它們之間的關鍵區別。

什麼是深拷貝

在深拷貝中,整個字串物件被複制並儲存在另一個字串物件中。所有原始字串物件的內容都被複制並儲存在新的字串物件中。

但是,在副本中,每次訪問複製的字串物件時都會儲存和訪問原始地址。

在 JavaScript 中如何複製字串

當你複製一個字串時,它的地址儲存在 JavaScript 中指定的 String 變數中。讓我們看一下這段程式碼以更好地理解這個概念。

let original_string = 'Hello'; 
var string_copy = (' ' + original_string).slice(1);

如你所見,在此程式碼段中,有一個名為 original_string 的變數,它有一個字串值 Hello

原始字串用作空格' '之後的引用。這種連線會在瀏覽器的實現中產生一個字串副本。

在 JavaScript 中如何深度複製字串

在提到的深拷貝程式碼段的解釋中,我們使用了一個稱為切片的字串原型函式,所以讓我們先解釋一下 slice() 原型函式。

slice 方法在 JavaScript 中用於在不更改原始字串的情況下檢索字串的一部分作為新字串。讓我們看看我們使用了 slice() 的這段程式碼:

let str = "Sliced_String";
let res = str.slice(0, 5);
console.log(res);

輸出:

Slice

字串中的前五個字元已被提取並作為輸出顯示在控制檯上。注意這裡的引數是 0 索引的;因此,不提取第 6 個字元。

或者,你不能提供任何將整個字串作為新字串返回的引數。

現在,回到深拷貝的解釋。

如上所述,JavaScript 中的深拷貝複製整個 JavaScript 字串物件並將其儲存在指定的字串常量或變數中。讓我們看看這個程式碼段,我們將一個 JavaScript 字串物件深度複製到一個常量中。

const str = 'I am showing an example';
const new_str = str.slice();

console.log( new_str );

在上面的程式碼段中,程式不會使用原始字串的引用,而是將原始字串的每個字元複製到新的字串變數中。

如上所述,slice() 函式從 str 常量中提取整個字串,並將其作為新字串返回到 new_str 常量中。這個新常量使用 console.log() 在程式碼段的最後一行顯示為輸出。

相關文章 - JavaScript String