仅当值既不为null也未定义时调用函数

单击一个按钮时,我会检查localstorage键中是否存在某些内容:

var a = localStorage.getItem('foo'); if (typeof a != 'undefined') { // Function } 

但如果密钥根本不存在,则返回null。 如果没有未定义,我怎么调用而不是null函数 ,否则返回true(?)或继续?

JavaScript有一个虚假值的概念…即0, nullundefined和一个空字符串。

因此,你应该能够通过这样做来检查a是否“真实”(即不是我上面提到的值之一):

 var a = localStorage.getItem('foo'); if (a) { // Function } 

SitePoint的更多信息可在此处获得

如果false0NaN或空字符串是localStorage中的有效值,则不应使用JavaScript的伪比较。

相反,您应检查该项是否等于null或等于undefined

 var a = localStorage.getItem('foo'); if (a === null || a === undefined) { // Function } 

请注意,三等于( === )运算符完全比较,没有类型强制 。 使用双等于( == )运算符,应用一组特殊规则来转换相似但不同类型的值。 其中最有用的一个是null == undefined ,允许简化上面的代码:

 var a = localStorage.getItem('foo'); if (a != null) { // Function } 

如果a为nullundefined则内部代码将不会运行。