美文网首页
关于js中一个逻辑判断引发的问题

关于js中一个逻辑判断引发的问题

作者: 林下人水边兵 | 来源:发表于2020-11-28 17:35 被阅读0次

    在java中如果如果空引用 空对象 当做判断的话 直接扔出个 空指针, 代码无法继续执行

    在js中,很常见看到如下代码

        var i=manager.getCache('key_name')//没有则返回 '' 有则返回 相对应的值 
        if(i)
        {
         //业务逻辑a
    
        }else{
          
          //业务逻辑b
    
        }
    

    在js中运行是没有问题的,因为 js本身就是一门弱语言,脚本语言,海纳百川吧

    相反

    如果把这一段代码 放到 java 中去运行的话, (这里是关注if的逻辑判断,不是照抄ok)
    很遗憾

    你会发现 有可能直接扔给个空指针 NullPointerException

    u=136761945,3880979753&fm=26&gp=0.jpg

    我们再把这段代码稍微修改一下

        var i=manager.getCache('key_name')//没有则返回 '' 有则返回 相对应的值 
        if(i==0)
        {
         //业务逻辑a
    
        }else{
          
          //业务逻辑b
    
        }
    

    假设:key_name 对应的 键值是没有值的 返回的一个 ''
    走到 if ,逻辑是走哪块代码块
    答案: 业务逻辑a

    小细节: 在js中 ,js 的 '' 空字符 代表的是 false
    而 0 1 在程序中 自然 0 是false 1是true
    那么

    ''==false
    0==false 
    
    if(''==0)   肯定是true罗
    
    
    timg.jpg

    因为之前在定义 数据 把0 也当做数据其中一个, 所以引发了 莫名其妙 跑到其他代码块了
    记录一下

    相关文章

      网友评论

          本文标题:关于js中一个逻辑判断引发的问题

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