在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 也当做数据其中一个, 所以引发了 莫名其妙 跑到其他代码块了
记录一下
网友评论