var db=window.openDatabase&&openDatabase();避免错误的好方法

Is var db = window.openDatabase && openDatabase(); a good way to avoid errors?

本文关键字:amp openDatabase 错误 方法 db var window      更新时间:2023-09-26

这是避免错误的好方法吗?

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

这似乎有效,但如果没有实现某个功能,这是避免错误的好方法吗?稍后我将检查sql_db是否为undefined/null/false

它在所有浏览器中都能工作吗?如果不支持window.openDatabase,它会返回undefinednullfalse吗?

请注意,这不仅仅是关于openDatabase,而是任何可能无法在所有浏览器中实现的功能。我已经在做window.console && console.log()了,这很好,但在这种情况下,我不会将任何对象保存到变量中。

是的,这很好,尽管我建议在&&之后也添加window.部分,只是为了防止与任何局部变量发生冲突。

如果没有定义全局变量,它将返回undefined——这种行为在浏览器之间是一致的,但请记住,undefined不是保留字,理论上可以被覆盖。为什么有人会这么做我无法理解,但很高兴知道。

我不完全相信这对于这个特定的案例是否是个好主意。

对于console && console.log,我认为它非常好,但如果您将它与openDatabase调用一起使用,那么可能不会。

为什么?

如果您有一个用于数据库调用的变量sql_db,如果它为null怎么办?这会导致一个错误。你会在每次使用前加上sql_db &&吗?这感觉像是一个拼凑,甚至不可能总是这样做。

在您实际使用呼叫结果的情况下,您可能应该选择正常的if-else检查。通过这种方式,您可以尽早检测到故障,并且依赖于结果的代码将更可靠地工作,而不需要样板变量检查。