我试图了解如何在我的代码中使用逻辑运算符并尽可能高效。
假设我有这个变量:
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 :(得分:1)
if( value ) {
}
如果值不是,将评估为true:
所以key !== null && key !== ''
可以替换为key
我们可以使用/\S/.test(key)
来测试只是空格(1或更多)的字符串
那怎么样?
if (key && /\S/.test(key) ){
}
或者
if (key && key.trim()){
}
答案 1 :(得分:0)
您可以简单地使用:
if(key) {
// to do here
}
照顾空白:
if(key && key.replace(/\s/g,'')) {
//
}
答案 2 :(得分:0)
您可以使用trim()
method从字符串中删除任何前导或尾随空白字符。您在第二个代码示例中没有简写符号。
if (key !== null && key.trim() !== '')
// Do something with key
}
答案 3 :(得分:0)
if(!~[null, '', ' '].indexOf(key))
或
if(!~[null, ''].indexOf(key.trim()))
说明:
indexOf return int> = 0。 Int> = 0表示找到该元素。除了0之外,所有结果都将评估为真,即~
(反转/否定结果并减去1)非常方便。
休息是不言自明的,如果需要进一步说明,请告诉我。
答案 4 :(得分:0)
尝试:
if (key && key.trim())
如果key为null,则第一次检查失败,如果key只是空格,则第二次检查失败。如果任一检查失败,整件事就会失败。