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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JSONObject 和object之间的转换

    JSONObject 和object之间的转换转换为json对象:JSONObjectjson=JSONObject.fromObject(Object);转换为json对象数组:JSONArrayjson=JSONArray.fromObject(person);

    2022年5月27日
    35
  • MPI_多节点执行程序[通俗易懂]

    MPI_多节点执行程序[通俗易懂] 有的时候MPI需要使用多节点,那么测试哪些进程在哪些机器上就比较重要,如下可以简单测试一下。#include<unistd.h>#include<stdio.h>#include<mpi.h>intmain(intargc,char*argv[]){charhostname[100];intrank,size;…

    2022年10月8日
    3
  • dos2unix命令解决 Shell 脚本无法执行的问题

    dos2unix命令解决 Shell 脚本无法执行的问题 1.解决问题    在执行脚本时,报了以下错误:-sh:./test.sh:/bin/bash^M:badinterpreter:Nosuchfileordirectory    出现上述类似的错误,原因是脚本在Windows下编辑然后上传到Linux系统里执行。我们编辑的.sh文件的格式为dos格式,而Linux只能执行unix格式的脚本。  我…

    2022年5月31日
    42
  • SQL 配置管理器找不到了

    SQL 配置管理器找不到了想用数据库建立远程连接,于是想把数据库改成IP地址连接,突然发现配置管理器不见了!!!!???百度了一下,有人说可以用win+R打开后,输入SQLServerManager10.msc后确定,就可以找到了,大家可以试试,不知道为什么我的不行。于是,花了点时间找了一下,发现,点击计算机——>右键——>管理——>服务应用程序——>终于找到了。。。…

    2022年7月21日
    10
  • busybox引导linux内核_linux移植教程

    busybox引导linux内核_linux移植教程文章目录一、搭建NFS服务器二、使用BusyBox构建跟文件系统2.1修改顶层Makefile2.2busybox中文支持2.3配置busybox2.4编译busybox2.5向根文件系统添加lib库2.5.1向{rootfs}/lib目录下添加库文件2.5.2向{rootfs}/usr/lib目录下添加库文件2.6创建其他文件夹三、测试文件系统(NFS挂载)3.1设置uboot中环境变量3.2命令解析四、完善文件系统4.1创建{rootfs}/etc/init.d/rcS文件4.2

    2022年10月6日
    2
  • 智能优化算法:海鸥优化算法-附代码

    智能优化算法:海鸥优化算法-附代码2019智能算法:海鸥优化算法-附代码摘要:本文简单介绍智能优化算法-海鸥优化算法1.原理海鸥是遍布全球的海鸟,海鸥种类繁多且大小和身长各不相同。海鸥是杂食动物,吃昆虫、鱼、爬行动物、两栖动物和蚯蚓等。大多数海鸥的身体覆盖着白色的羽毛,经常用面包屑来吸引鱼群,用脚发出雨水落下的声音来吸引藏在地下的蚯蚓。海鸥可以喝淡水和盐水,通过眼睛上方的一对特殊腺体,将盐从它们的体内排出。海鸥以群居式生活,利用智慧来寻找和攻击猎物。海鸥最重要特征是迁徙和攻击行为,迁徙是动物从一个地方到另一个地方根据季节更替

    2022年5月23日
    41

发表回复

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

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