美文网首页
关于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中一个逻辑判断引发的问题

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

  • 变量声明提升

    变量声明提升是JS中一个基础的问题,同时也是对JS词法作用域认识的一个提升。在JS面试题中,关于变量声明提升的问题...

  • js 复杂判断的简化

    js 复杂判断的简化 我们编写js代码时经常遇到复杂逻辑判断的情况,通常大家可以用if/else或者switch来...

  • javascript 中&& 与 ||的使用

    写RN项目时经常会遇到逻辑判断问题,而js 中的&& 和 || 却和安卓中的存在很大区别。 &&使用 如果 A &...

  • js里什么是真什么是假

    js代码中常会用到一些真假判断,比如if,else ifswitchwhile,for&&,|| 逻辑与逻辑或!...

  • 荷月八 小程序小记 【字符串判断/js封装/数组拼接/texta

    1、不少JS针对字符串的判断JS验证字符串功能 2、判断是不是字符串 3、js封装 关于Util文件util.js...

  • || 和 && 操作符

    1. 逻辑或的本质 2. 逻辑与的本质 || 和 && 返回它们其中一个操作数的值,而非条件判断的结果 3.逻辑非...

  • js的 && 与 || 逻辑判断应用

    && (并且): 两个条件都为true时,结果为true; 有一个条件为false,结果为false; 当第一个条...

  • React-Native常用技巧

    JS 语法 1. js中 !!用法 js中 ! 的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!...

  • 基于 Chrome 的 override功能逆向JS

    最近在爬虫的时候,需要搞清楚其中一个JS文件的加密逻辑,需要对JS文件进行debug,这就需要借助override...

网友评论

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

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