2013-07-18 32 views
1

這是爲了避免錯誤的好辦法?是var db = window.openDatabase && openDatabase();避免錯誤的好方法?

var sql_db = window.openDatabase && openDatabase('table', '1.0', 'description', 4096); 

它似乎工作,但是這是避免錯誤,如果功能沒有實現的好方法?後來我就檢查sql_dbundefined/null/false

是否在所有的瀏覽器,而它返回undefinednullfalse如果​​不支持?

請注意,這不僅是openDatabase而是可能無法在所有瀏覽器中實現任何功能。我已經在做window.console && console.log(),這工作正常,但在這種情況下,我不保存任何對象的變量。

回答

4

是的,這很好,但我建議在&&之後加上window.部分,以防止與任何局部變量衝突。

如果沒有定義全局變量,它將返回undefined - 這種行爲在瀏覽器中是一致的,但請記住undefined不是保留字,理論上可以覆蓋。爲什麼有人會這樣做是超出我的,但很高興知道。

1

我並不完全相信這是否是這種特定的情況下是一個好主意。

對於console && console.log,我覺得這很不錯,但是如果你使用它與openDatabase調用,那麼也許不是。

爲什麼?

如果您有使用的數據庫調用,sql_db,如果它是空的變量?這將導致錯誤。你打算在sql_db &&的前面加上前綴嗎?這感覺就像一個混亂,它可能永遠不可能做到這一點。

在你實際上將使用呼叫的東西的結果的情況下,你應該只選擇一個普通的if-else檢查。通過這種方式,您可以儘早發現故障,並且依賴於結果的代碼將更加可靠地工作,而無需進行樣板變量檢查。

相關問題