muqianxiaoniu2018 2016-06-25 08:46 采纳率: 100%
浏览 4694
已采纳

JS的判断非空正确写法,求大神指点

第1个问题:偶然看见一段代码是这么写的:

if(object != null) || (object != "") || (object != undefined){
doSomething();
}

但是我平时都是这么写的
if(object != null) && (object != "") && (object != undefined){
doSomething();
}

我觉得应该是并列关系,但是代码是大牛写的,毕竟我的经验不多,我觉的也许我错了,但是又想不通,所以特来请教各位。

第2个问题:平时大家做判断是判断为空,还是判断非空,我的习惯是
if(object != null){
doSomething();

但是有人告诉我这样判断容易报空指针错误,应该是
if(object == null){
return;
}else{
doSomething;
}
不知道是个人习惯写法还是什么,所以也想请教一下,如果问的比较LOW了,各位大牛见谅

  • 写回答

2条回答 默认 最新

  • little_how 2016-06-25 11:43
    关注

    js中是有null的,
    判断对象是否有效醉快捷的方式就是:
    if (object) {
    //dosomething
    }

    如果对象可能是数字则可以增加一个判断:
    if (object || object == 0){//因为0会当做false处理
    //dosomething
    }

    你第一个问题中的判断肯定有问题,如果一个对象不为null,就会进入语句块了,不会判断""了,如果为null,判断""也没用
    逻辑就有问题。

    判断对象具体是否为undefined;
    最好是用typeof object == "undefined"

    还有一个就是反向:
    if (!object){
    //false逻辑处理
    } else {
    //do something
    }

    if ( object == null) 也可以,但是局限性特别强

    如果有帮助,希望采纳,还有就是在JavaScript中运算符判断语句是不会出现空指针的。
    只有对一个null对象就像属性或方法的调用才会出现。

    如果有帮助,希望采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入