博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript 中的非空判断 undefined,null, NaN的区别
阅读量:4574 次
发布时间:2019-06-08

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

原文:

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oscar999/article/details/9353713

JS 数据类型

在介绍这三个之间的差别之前, 先来看一下JS  的数据类型。

在 Java ,C这样的语言中, 使用一个变量之前,需要先定义这个变量并指定它的数据类型,是整型,字符串型,....

但是在js 中定义变量统一使用 var , 或者不使用var 也可以使用。

那么js 中是否有数据类型的概念呢? 当然有, 使用 typeof 就可以判断这个变量的数据类型:

New Document
以上例子弹出的值是 "string", 由此可以看出, js 也是有数据类型的。

js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型。

原始类型和引用类型有什么区别?引用的概念其他语言的引用很类似, 就是一个地址。看一下这个例子就知道了。

New Document
别忽略了object 类型的这种特性哦, 这个是会被经常误用的地方。类似上面的obj的改变引起了objCopy的改变。

除了以上5 中类型之外, 还有一种 “function”的类型。

New Document

 undefined 和 null, NaN 的区别

有了上面的介绍,就可以很容易把undefined 和其他的两个区分开来。

undefined判断的是变量的类型,而其他两个判断是变量的值。

undefined可以用来表示以下的状况

1. 表示一个未声明的变量,

2. 已声明但没有赋值的变量,

3. 一个并不存在的对象属性

null 是一种特殊的object ,表示无值;

NaN是一种特殊的number ,表示无值;

比较符(== 或 ===)

使用 == ,如果两边的类型不同, js 引擎会先把它们转成相同的类型在进行值的比较;

使用 ===, 则不会进行类型转换,类型不同,肯定不相等。 

实例

有了以上的知识,再来看下面一些有意思却容易混淆的例子应该就很清晰了:

New Document
把var s 改成 var s = null 再看看效果~~

一般情况下, 对js 某个变量s 判空习惯使用 if(s!=null) , 如果s 没有定义的话,就会报undefined的js 错误, 所以完整的判空可以使用如下方式:

if(typeof(s)!="undefined"&&s!=null)

posted on
2019-01-09 22:03 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/10247156.html

你可能感兴趣的文章
Sublimetext3安装Emmet插件步骤
查看>>
MySQL配置参数
查看>>
全面理解Java内存模型
查看>>
存储过程
查看>>
生成器
查看>>
将一个数的每一位都取出来的方法!
查看>>
2) 十分钟学会android--建立第一个APP,执行Android程序
查看>>
面试题8:二叉树下的一个节点
查看>>
hash冲突的解决方法
查看>>
Asp.Net webconfig中使用configSections的用法
查看>>
mysql 二进制日志
查看>>
阻止putty变成inactive
查看>>
TP框架代码学习 学习记录 3.2.3
查看>>
doc文档生成带目录的pdf文件方法
查看>>
js数组,在遍历中删除元素(用 for (var i in arr)是无效的 )
查看>>
通过前端上传图片等文件的方法
查看>>
在 OC 中调用 Swift 代码
查看>>
Android仿腾讯应用宝 应用市场,下载界面, 有了进展button
查看>>
安卓|五大逆向软件下载
查看>>
5 OK6410裸机调试(不用Jlink)
查看>>