这是避免错误的好方法吗?
var sql_db = window.openDatabase && openDatabase('table', '1.0', 'description', 4096);
这似乎有效,但如果没有实现某个功能,这是避免错误的好方法吗?稍后我将检查sql_db
是否为undefined
/null
/false
。
它在所有浏览器中都能工作吗?如果不支持window.openDatabase
,它会返回undefined
、null
或false
吗?
请注意,这不仅仅是关于openDatabase
,而是任何可能无法在所有浏览器中实现的功能。我已经在做window.console && console.log()
了,这很好,但在这种情况下,我不会将任何对象保存到变量中。
是的,这很好,尽管我建议在&&
之后也添加window.
部分,只是为了防止与任何局部变量发生冲突。
如果没有定义全局变量,它将返回undefined
——这种行为在浏览器之间是一致的,但请记住,undefined
不是保留字,理论上可以被覆盖。为什么有人会这么做我无法理解,但很高兴知道。
我不完全相信这对于这个特定的案例是否是个好主意。
对于console && console.log
,我认为它非常好,但如果您将它与openDatabase
调用一起使用,那么可能不会。
为什么?
如果您有一个用于数据库调用的变量sql_db
,如果它为null怎么办?这会导致一个错误。你会在每次使用前加上sql_db &&
吗?这感觉像是一个拼凑,甚至不可能总是这样做。
在您实际使用呼叫结果的情况下,您可能应该选择正常的if-else检查。通过这种方式,您可以尽早检测到故障,并且依赖于结果的代码将更可靠地工作,而不需要样板变量检查。