2012-11-16 191 views
2

如何檢查本地存儲值是否爲空?例如..javascript本地存儲

localStorage.setItem('favoriteflavor',''); 

var taste = localStorage.getItem('favoriteflavor'); 

if(taste == null){ 
    console.log('favoriteflavor is null'); 
} 
else { 
    console.log('favoriteflavor is NOT null'); 
} 

這是最有意義的,但我沒有得到任何結果。我也試過這種..

if(localStorage['favoriteflavor'] == 'null'){ 
    console.log('favoriteflavor is null'); 
} 

http://jsfiddle.net/AwsyE/6/

+0

您將值設置爲'''',所以與之相比較。使用'if(taste =='')' – Ian

+1

'null'和空字符串''''是不同的,所以它們在你嘗試的方式上沒有可比性。 – Ian

+0

可能值得注意的是,'getItem' **不返回'null',但只在實例中**該鍵不存在**。如果鍵存在,它將返回''''或一個字符串。要刪除一個鍵/ VAL對,你應該使用'removeItem'。 [MDN ref](https://developer.mozilla.org/en-US/docs/DOM/Storage#Storage)似乎沒有詳細列出方法。 –

回答

4

如果設置favoriteflavor爲空字符串,那麼你應該檢查是否有一個空字符串不是其他

localStorage.setItem('favoriteflavor',''); 
var taste = localStorage.getItem('favoriteflavor'); 
if(taste == ''){ 
    console.log('favoriteflavor is empty');  
} 
else{ 
    console.log('favoriteflavor is NOT empty'); 
} 

另外,如果你正在刪除favoriteflavor然後你可以檢查它對null

localStorage.setItem('favoriteflavor','chocolate'); 
delete localStorage['favoriteflavor']; 
// or use localStorage.removeItem('favoriteflavor'); 

var taste = localStorage.getItem('favoriteflavor'); 

if(taste == null){ 

    console.log('favoriteflavor is null'); 

} 
else 
{ 
    console.log('favoriteflavor is NOT null'); 
} 

http://jsfiddle.net/mowglisanu/AwsyE/10/

0

要設置你的項目作爲 '' 就在這裏:

localStorage.setItem('favoritefla',''); 

和測試輸出是否== NULL

if(localStorage['favoriteflavor'] == 'null' 

當它等於 '' 既然你自己之前已經設置了該值。

我相信你想知道如果瀏覽器具有localStorage能力,這可以通過測試做,如果你可以插入和從該對象中刪除項目,如下所示:

var hasStorage = (function() { 
    try { 
    localStorage.setItem(mod, mod); 
    localStorage.removeItem(mod); 
    return true; 
    } catch(e) { 
    return false; 
    } 
}()); 

以上函數將返回如果連接器具有localStorage容量,則爲true。我希望它有幫助,歡呼