繁体   English   中英

Javascript:将逻辑运算符与比较运算符一起使用

[英]Javascript: using Logical Operators with Comparison Operators

我试图了解如何在我的代码中使用逻辑运算符,并使其尽可能高效。

假设我有这个变量:

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
}
if( value ) {
}

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

  • 空值
  • 未定义
  • N
  • 空字符串(“”)
  • 0

所以key !== null && key !== ''可以替换为key

我们可以使用/\\S/.test(key)测试仅是空格(1个或更多)的字符串

那怎么样

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

}

或者

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

}

您可以简单地使用:

if(key) {
   // to do here
}

照顾空格:

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

您可以使用trim()方法从字符串中删除任何前导或尾随空格字符。 没有第二个代码示例中那样的速记符号。

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

要么

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

说明:

indexOf返回int> = 0。 Int> = 0表示找到了元素。 除0以外,所有结果的计算结果均为true,这是~ (求反/求反并减去1)的地方。

休息是不言自明的,如果需要任何进一步的说明,请告诉我。

尝试:

if (key && key.trim())

如果key为null,则第一次检查失败,如果key为空白,则第二次检查失败。 如果任何一项检查失败,则整个操作都会失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM