2017-04-09 94 views
1

我有以下Javascript代碼。刪除,刪除javascript中的所有字符串引用

var myString = 'hello world'; 
var myStringCopy = myString; 
myString = null; 

console.log(myString, myStringCopy); 

以下的輸出的console.log這是

>null 
>"hello world" 

如何確保所有引用具有空值

+1

你不能真正做到這一點的JS。你的用例是什麼?也許更好的辦法是保存一組值,並通過它們循環設置爲null,當你完成它們。 –

+0

只是想知道,因爲我們可以爲數組和對象做到這一點,爲什麼不爲字符串。 arr.length = 0;將所有引用設爲[],對於我們可以使用的對象delete obj.something;這將返回所有參考undefined。 – patz

+3

字符串按值存儲,而對象按引用存儲。 – Paul

回答

1

您可以使用塊{}let,其中變量在塊內聲明使用let將僅在塊內定義

{ 
 
    let myString = 'hello world'; 
 
    let myStringCopy = myString; 
 
    // do stuff with `myString`, `myStringCopy` here 
 
    console.log(myString, myStringCopy); 
 
} 
 

 
try { 
 
    console.log(myString); 
 
} catch (e) { 
 
    console.log(e); // `ReferenceError: myString is not defined` 
 
} 
 

 
try { 
 
    console.log(myStringCopy); 
 
} catch (e) { 
 
    console.log(e); // `ReferenceError: myStringCopy is not defined` 
 
}