美文网首页
同时为空或同时不为空判断

同时为空或同时不为空判断

作者: 輕輕煙雨 | 来源:发表于2019-08-20 15:09 被阅读0次

    javascript开发中我们经常为碰见这样的需求:

    str1str2要么同时为空,要么同时不为空

    针对这样的需求,一般常见的做法如下:

    // StringUtil.isEmpty(obj) 是判断obj是否为空的函数
    if ((StringUtil.isEmpty(str1) && StringUtil.isEmpty(str2)) 
            || (!StringUtil.isEmpty(str1) && !StringUtil.isEmpty(str2))) {
            // do something
    }
    

    对于上述代码,能很好的满足需求,然而总感觉有点繁琐。为了追求代码简洁点,因而可借用位运算^来实现上述需求。
    不过在这之前,我们先了解下什么是异或运算符 (^):

    如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0,即:
    1^0 = 1 , 1^1 = 0 , 0^1 = 1 , 0^0 = 0

    所以优化后的代码如下:

    if (!(StringUtil.isEmpty(str1) ^ StringUtil.isEmpty(str2))) {
            // do something
    }
    

    相关文章

      网友评论

          本文标题:同时为空或同时不为空判断

          本文链接:https://www.haomeiwen.com/subject/afdpsctx.html