• 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;
    }
    
  • 相关阅读:
    Rolling File Appender使用示例
    log4net生成dll文件
    看涨期权(call options)
    log4net file Appender使用示例
    log4net不能记录日志,IsErrorEnabled值为false
    C#委托
    打印事件处理顺序
    Zigbee、WiFi和433MHz无线技术
    log4net Tutorial
    安装服务出现异常
  • 原文地址:https://www.cnblogs.com/DHclly/p/9782328.html
Copyright © 2020-2023  润新知