首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >var db = window.openDatabase && openDatabase();是避免错误的好方法吗?

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

Stack Overflow用户
提问于 2013-07-18 18:24:25
回答 2查看 191关注 0票数 1

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

代码语言:javascript
复制
var sql_db = window.openDatabase && openDatabase('table', '1.0', 'description', 4096);

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

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

请注意,这不仅仅与openDatabase有关,还涉及到并非所有浏览器都能实现的任何功能。我已经在做window.console && console.log()了,它工作得很好,但在这种情况下,我不会将任何对象保存到变量中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-18 18:27:58

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

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

票数 4
EN

Stack Overflow用户

发布于 2013-07-18 18:40:01

对于这个特定的案例,我并不完全确信这是不是一个好主意。

对于console && console.log,我认为它很好,但是如果您在openDatabase调用中使用它,那么可能就不是了。

为什么?

如果您有一个用于数据库调用的变量sql_db,那么如果它是null呢?它会导致一个错误。您是否会在每次使用时都添加sql_db &&前缀?这感觉就像是一个杂乱无章的东西,甚至可能不可能总是这样做。

在实际使用调用结果的情况下,您可能只需要选择普通的if-else检查即可。通过这种方式,您可以及早检测到故障,并且依赖于此结果的代码将更可靠地工作,而无需进行样板变量检查。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17720858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档