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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112629.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【带你入门】java网络编程

    【带你入门】java网络编程网络编程网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习。在学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的。首先来问一个问题:你会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛,很简单的事情啊!其实初学者如果入门网

    2022年6月12日
    39
  • python编程画圆入门(python常用函数)

    python画圆运用了matplotlb库的figure()和Circle()函数;其中,figure()函数用于确定画布大小,而Circle()函数用于配置圆的相关信息,进而画圆。H9Z少儿编程网-https://www.pxcodes.comH9Z少儿编程网-https://www.pxcodes.com本教程操作环境:windows7系统、Python3版、DellG3电脑。H9Z少儿…

    2022年4月14日
    183
  • L05 Laravel 教程 – 电商实战

    L05 Laravel 教程 – 电商实战

    2021年10月26日
    31
  • PPP之PAP与CHAP经典验证案例

    PPP之PAP与CHAP经典验证案例

    2021年8月7日
    232
  • linux 查询环境变量_ubuntu查看环境变量

    linux 查询环境变量_ubuntu查看环境变量有时候在编写makefile的时候,自己都不清楚有些变量是什么,也不清楚如何查看,于是感觉有必要在这里写一篇环境变量查看的博文。如果你想查看某一个名称的环境变量,命令是:echo$环境变量名,比如:echo$ORACLE_HOME这是最基础的,下面来讲下稍微深入一点的,并举例说明1.显示环境变量HOME$echo$HOME/home/ljj2.设置一个新的变量$exportHELLO=”…

    2022年9月1日
    2
  • java实现html转word_javaweb与html区别

    java实现html转word_javaweb与html区别前段时间在做html生成word功能,找了好几种方案,有的用jacob,但是这个比较麻烦,又是dll又是jar的,依赖太多了,而且代码量比较多,所有以采用了freemarker来生成word,制作一个模板就可以生成word文档了,生成的图片也不会依赖本地路径。制作模板,打开word,制作报告的样式,然后另存为xml格式,最好是2003格式的xml,不然会出现不兼容的现象。完成之后修改为ftl格

    2022年10月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号