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


相关推荐

  • ASP.NET画直方图

    ASP.NET画直方图最近做直方图,找到了这篇文章,以此为例画一般的直方图可以实现了。usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;

    2022年7月27日
    6
  • java中Set集合的遍历及实现类比较分析

    java中Set集合的遍历及实现类比较分析java中Set集合是一个不包含重复元素的Collection,首先我们先看看遍历方法packagecom.sort;importjava.util.HashSet;importjava.util.Iterator;importjava.util.Set;/***一个不包含重复元素的collection。更确切地讲,set不包含满足e1.equals(e2)的

    2022年5月29日
    39
  • 老鹰主机怎么样?多年的用户来说下

    老鹰主机怎么样?多年的用户来说下说到老鹰主机 我想我绝对很有发言权 因为老刘说主机这个网站就是老鹰主机搭建的 一直十分的稳定 而且国内访问速度很快 说实话之前一直非常的担心国内访问速度会很慢 但是一直以来都给我特别的惊喜和放心 下面我们一起来说说老鹰主机怎么样 1 价格便宜我自己网站用的是年付 44 刀的套餐 一个月下来平均也是就 2 刀多 提供 30 天的退款保障 这个价格在所有的国外知名的主机商里面也算是很便宜的了 2 功能强大

    2025年7月6日
    3
  • 在bash中export命令作用是什么_bash:no such file or directory

    在bash中export命令作用是什么_bash:no such file or directoryexport  export命令将会使得被export的变量在运行的脚本(或shell)的所有的子进程中都可用.  不幸的是,没有办法将变量export到父进程(就是调用这个脚本或shell的进程)中.  关于export命令的一个重要的使用就是用在启动文件中,启动文件是用来初始化并且设置环境变量,让用户进程可以存取环境变量脚本不能export(导出)变量到它的父进程(p

    2025年9月4日
    5
  • MySQL 使用方法简单教程

    MySQL 使用方法简单教程MySQL使用方法简单教程

    2022年6月26日
    29
  • 下拉框Html.DropDownList 和DropDownListFor 的经常用法

    下拉框Html.DropDownList 和DropDownListFor 的经常用法

    2021年12月3日
    44

发表回复

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

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