[英]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:
所以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.