博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不能用array === null 来判断数组为空!!!
阅读量:5972 次
发布时间:2019-06-19

本文共 1023 字,大约阅读时间需要 3 分钟。

hot3.png

js中的数据类型

字符串、数字、布尔、数组、对象、Null、Undefined
===全等比较
比较2个相同类型的对象,如果类型不同,就直接返回false,如果类型相同,那就比较具体的值或具体的引用地址

var arr=null;if(arr===null){    console.log('arr is null');}arr=undefined;if(arr===null){    console.log('arr is null');}else if(arr===undefined){    console.log('arr is undefined');}//arr赋值一个数组对象arr=[];//if(arr.length==0){if(arr.length===0){   console.log('arr is empty');}

所以在判断数组是否为空时,可以使用以下代码对象在做逻辑判断的时候,如果值为null,undefined,转化boolean值 false

try{    if(!arr||(Object.prototype.toString.call(arr)==='[object Array]'&&arr.length===0))            {       console.log('arr is null or empty');    }}cathc(error){    //处理arr未被声明的情况}

null 和 Array 是两种不同的基本数据类型。

为什么array !== null,其实就是既然arr是数组,那么就是Array对象,表象上就是一对中括号,里面有没有值无所谓,那么[]怎么可能 === null的呢,或者换个角度,new Array() 怎样可以 === null的呢。

null代表未声明,undefined代表未定义

比如var arr = []
这里分两部分
先是var arr 此时声明变量arr
arr = [] 这时就是定义arr为数组对象
因为arr被声明过所以不可能为null

而arr被定义成空数组,虽然有定义,但原始值是""

(经过提醒,数组的原始值就是[],但在运算的时候会被强转成"")
所以如果用 arr == false的话就会返回true

转载于:https://my.oschina.net/lybblbb/blog/888933

你可能感兴趣的文章
【必看】分析各大招聘网站
查看>>
自动化部署java maven项目到多个目标主机的Shell脚本
查看>>
Linux 小技巧
查看>>
专家称上海普通家庭不吃不喝17年可买百平米房
查看>>
谈谈LYNC的语音路由相关含义
查看>>
《Solution-Centric Organization》解决方案导向型组织 节选 III
查看>>
解决思科认证学员与高校网络及信息安全专业实验限制的解决方案
查看>>
构建日均千万访问量网站的硬件核心-戴尔PowerEdge企业服务器
查看>>
埃森哲:2017年网络犯罪成本研究报告(含分析)
查看>>
SQL Server 2008备份策略设计上(五)
查看>>
开发可统计单词个数的Android驱动程序(2)
查看>>
【VMCloud云平台】私有云门户第一朵VM云(二)
查看>>
XCode编译运行出错解决思路,以及再次推荐AppCode
查看>>
活动分区丢失导致的Windows 8无法启动
查看>>
我在赶集网的两个月 (完整版)
查看>>
SFB 项目经验-08-Polycom CX700-4.0.X-能登录SFB 2015-能更新为中文
查看>>
我的友情链接
查看>>
新浪微博广告,要社交还是要品牌?
查看>>
Twisted入门教程(1、2)
查看>>
自动化日吸1000粉的流程和思路:内含3个案例和实操
查看>>