• javascript中判断变量是否存在的正确方式


    在Javascript中,我们通常判断一个变量是否存在(即不为null或者undefined),往往是这样判断的

    if(tomy){
        console.log(obj.name);
    }

    这种写法在大部分情况下都没问题,但是在有的情况下就会很坑,比如:

    空字符串

    if(tomy.address){//tomy.address=''
        console.log(tomy.address);
    }else{
        console.log("the obj tomy need address property");
    }

    我们的本意是判断tomy是否有address这个属性,结果是有address属性的,只是值为'’(啥都没有,空字符串),结果就被js引擎解析为布尔值false,和本意不符。

    数字0

    var config={};
    if(minValue){//minValue=0;
        config.minValue=minValue;
    }

    我们的本意是判断是否传了minValue,如果有就赋值,结果是有传minValue属性的,只是值为0,结果就被js引擎解析为布尔值false,变成了没有传minValue这个属性。和本意不符。

    布尔值

    if(tomy.canWork){//tomy.canWork=false;
        //do work
    }

    我们的本意是判断tomy是否有canWork这个属性,结果是有canWork属性的,只是值为false,结果就会和本意不符。

    结论

    因此我们要判断一个变量是否存在,应该这样写才是比较好的,也方便后期维护。

    //封装为一个方法
    const isNullOrUndefined=obj=>obj===null || obj === undefined;
    
    var config={};
    if(!isNullOrUndefined(minValue)){
        config.minValue=minValue;
    }

    https://www.cnblogs.com/DHclly/p/9782328.html
  • 相关阅读:
    项目纪实一
    Quartz.net一个简要示例
    ASP.NET MVC4 WebAPI若干要点
    利用委托实现父控件与子控件之间消息传递
    js获取屏幕信息
    jsion大括号和中括号,及调用
    jquery解析jsion
    hibernate初步
    java web笔记
    mysql存储过程
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15453679.html
Copyright © 2020-2023  润新知