強制 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()
在程式碼段的最後一行顯示為輸出。