不当用法

有时为了判断某个值有效,JS新手会写这种臃肿代码:

if (data != null && typeof(data) != undefined && data != '') {...
}

为避免这种情况,首先要了解undefined和null的区别。

什么是undefined和null

当声明的变量未被初始化时,默认值为undefined。如:

let myVal; // undefined

null表示尚未存在的对象。如:

let testNode = this.node.getChildByName('noExist'); // 没有noExist节点,testNode为null

如何判断undefined和null

测试证明对undefined、null和空字符串取反为true,对其余任何值取反都为false。如:

!undefined; // true
!null; // true
!''; // true
!1; // false
!'123'; // false

所以,如果想判断一个值是undefined、null和空字符串中的一种,只要用 ! 就可以。如:

if (!data) {...
}

同理,如果想判断一个值不是undefined、null和空字符串中的一种,则用 !! 就可以。如:

if (!!data) {...
}

在JS中如何判断undefined和null相关推荐

  1. JS 中如何判断 undefined 和 null

    为什么80%的码农都做不了架构师?>>>    JS 中如何判断 undefined JavaScript 中有两个特殊数据类型:undefined 和 null,下节介绍了 nul ...

  2. js中如何判断undefined

    js中如何判断undefined 判断是否undefined 判断是否undefined var a= undefined; if (typeof(a) == "undefined" ...

  3. php undefined 判断,JS中如何判断null、undefined与NaN

    javascript中如何判断一个变量是否是null,undefined还是NaN呢?下面我们看看具体的判断方法吧. 主要是通过 typeof 这个方法去判断,typeof 返回的是字符串,有六种可能 ...

  4. js判断undefined和null

    js判断undefined var exp = undefined; if (typeof(exp) == "undefined") {alert("undefined& ...

  5. Js如何判断undefined和null

    判断是否为undefined var example = undefined; if (typeof(example) == "undefined") {console.log(& ...

  6. 关于js中0==‘‘判断为True

    在做项目的时候为SQL语句的执行加了一条判断语句,if(value!=null&&value!='')的时候执行SQL,本意是如果值不为null或者空字符串则执行赋值语句,发现当传过来 ...

  7. 在js中如何判断一个对象是否为空

    网上已经有很多的回答了分别是 for in (jquery中就是这么实现的) for of JSON.stringify() == '{}' Object.getOwnPropertyNames() ...

  8. JS中如何判断null

    var exp = null; if (exp == null) { alert("is null"); } exp 为 undefined 时,也会得到与 null 相同的结果, ...

  9. 在JS中如何判断所输入的是一个数、整数、正数、非数值?

    1.判断是否为一个数字: Number(num)不为 NaN,说明为数字 2. 判断一个数为正数: var num=prompt("请输入:");if(Number(num)> ...

最新文章

  1. CentOS安装Google浏览器
  2. MAT之NSL:CPK_NN神经网络实现预测哪个样本与哪个样本处在同一层,从而科学规避我国煤矿突水灾难
  3. numpy.ndarray.view()(懵逼,看不太懂???)(view不会开辟新的内存空间)
  4. 编译原理中词法分析的递归下降分析法实例--能被5整除的二进制数---c语言实现
  5. 第1届ICPC青少年程序设计竞赛(正式赛)A 题 - Divide
  6. 【图像处理基础知识】中文车牌识别API-HyperLPR的应用与相关学习资料(python版)
  7. docker 删除镜像时报错Error response from daemon: conflict: unable to delete xxx (must be forced) -
  8. 蔡先生论道大数据之六 : 打破对“精准性”的执着
  9. UIAlertController (UIActionSheet, UIAlertView is deprecated in iOS 8.)
  10. 非特定人语音识别,speaker-independent speech recognition,音标,读音,翻译,英文例句,英语词典...
  11. jquery替换节点
  12. 数字图像处理入门(冈萨雷斯第三版)
  13. 用谷歌浏览器如何下载哔哩哔哩中的视频
  14. python实现seo疯狂外链发送工具
  15. 智能合约安全审计指南
  16. Windows 8安装软件时遇到运行时错误‘339’ MSCOMCTL.ocx或其附件之一未注册
  17. 冬登高峰山,问禅铁瓦寺
  18. MySQL学习_数据库和表的基本操作
  19. 《把时间当做朋友-李笑来》
  20. Notepad++查看二进制文件——HexEditor插件

热门文章

  1. 0001-Two Sum(两数之和)
  2. mysql avg 报错_MySQL报错汇总
  3. 调度场算法与逆波兰表达式
  4. POJ4449(三维凸包+空间坐标旋转+二维凸包)
  5. Delphi之virtual,dynamic,abstract
  6. 数据库脱机和分离的区别
  7. C++ 虚函数与纯虚函数
  8. Python 日志模块Loguru的使用
  9. TCP/IP协议栈到底是内核态好还是用户态好?
  10. Linux(CentOS)中常用软件安装,使用及异常——Zookeeper, Kafka