0

我想了解如何在我的代码中使用逻辑运算符并尽可能高效。Javascript:使用逻辑运算符与比较运算符

比方说,我有这个变量:

var key = localStorage.getItem('keyName'); 

这是我的条件:

if (key !== null && key !== '' && key !== ' ') { // localStorage key exists and is not empty or a single space 
    // Do something with key 
} 

是否有更有效地写入的方法吗?我想这一点,但它不工作:

if (key !== null && '' && ' ') { 
    // Do something with key 
} 
+0

试试这个 如果(关键){} – Vamsi

+0

[相关](http://stackoverflow.com/questions/5559425/isnullorwhitespace-in-javascript) –

+0

@Vamsi的工作,除非'键'是'0'或'假'。本地存储可以包含任何类型的值:http://www.w3.org/TR/2009/WD-webstorage-20090910/#the-storage-interface – nils

回答

0

您可以简单地使用:

if(key) { 
    // to do here 
} 

照顾空白:

if(key && key.replace(/\s/g,'')) { 
    // 
} 
0

可以使用trim() method,以消除任何领导或尾随字符串中的空格字符。在第二个代码示例中没有速记符号。

if (key !== null && key.trim() !== '') 
    // Do something with key 
} 
0
if(!~[null, '', ' '].indexOf(key)) 

if(!~[null, ''].indexOf(key.trim())) 

说明:

的indexOf返回INT> = 0。 Int> = 0表示找到该元素。所有的结果都将评估为真,除了0,那就是~(反转/否定结果和减1)方便。

休息是不言自明的,请让我知道是否需要进一步解释。

+0

请使用您的代码添加简要说明。 –

0

尝试:如果key为null,如果关键是只有空白的第二检查失败

if (key && key.trim())

第一检查失败,和。如果任一检查失败,整个事情都会失败。

1
if(value) { 
} 

将评估为true,如果值不是:

  • 不确定
  • NaN的
  • 空字符串( “”)

所以key !== null && key !== ''可以通过key

代替我们可以使用/\S/.test(key)来测试一个字符串,它只是空间(1或更多)

因此,如何

if (key && /\S/.test(key)){ 

} 

或可替代

if (key && key.trim()){ 

} 
+0

修剪()将只能从IE9和工作,但这不是你的情况下的问题 – digitalfrost