zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    mysql 主从复制原理
    java操作ldap
    ldap数据库--ldapsearch,ldapmodify
    ldap数据库--ODSEE--ACI
    ldap数据库--ODSEE--schema
    ldap数据库--ODSEE--复制协议
    ldap数据库--ODSEE--suffix
    ldap数据库--ODSEE--卸载
    ldap数据库--ODSEE--安装
    WebService--cxf
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15453679.html
Copyright © 2011-2022 走看看