JavaScript中null和undefined的比较和区别

在JavaScript中很经常就会出现nullundefined这几种结果,今天就详细的介绍一下null和undefined的定义和区别。

null根据其名字就可以大致看出来意思,就是为空。在js中如果变量这么定义的话var flag=null,这个时候flag就是个空值,将其打印出来也是null。

而undefined则表示未定义,例如:var flag;然后将flag打印出来,此时flag的结果就是undefined。

所以二者之间的区别就是一个是已经定义可是却是为空的,而另一种则是未定义是何种类似的。

下面看一下例子:

var flag1;
		var flag2=null;
		console.log("flag1:"+flag1);
		console.log("flag2:"+flag2);
		console.log("flag1==null?"+(flag1==null));
		console.log("flag1==undefined?"+(flag2==undefined));
		//”==”与”===”是不同的,一个是判断值是否相等,一个是判断值及类型是否完全相等。
		console.log("flag1==flag2?"+(flag1==flag2));
		console.log("flag1===flag2?"+(flag1===flag2));
		console.log("flag1==flag2?"+(flag2=="null"));
		console.log("flag1==flag2?"+(flag1=="undefined"));

运行结果为:

flag1:undefined
flag2:null
flag1==null?true
flag1==undefined?true
flag1==flag2?true
flag1===flag2?false
flag1==flag2?false
flag1==flag2?false

这里需要解释一下的是==于===的区别:

1、对于string,number等基础类型,==和===是有区别的

1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等

2)同类型比较,直接进行“值”比较,两者结果一样

2、对于Array,Object等高级类型,==和===是没有区别的

进行“指针地址”比较

3、基础类型与高级类型,==和===是有区别的

1)对于==,将高级转化为基础类型,进行“值”比较

2)因为类型不同,===结果为false

总结起来就是:”==”与”===”是不同的,一个是判断值是否相等,一个是判断值及类型是否完全相等。

这里需要注意的是:null==undefined结果是true的,null===undefined结果是false的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术分享

带抽象方法的枚举

package org.lgy.study.enumstudy; public enum Operation{ PLUS,MINUS,M...

19411
来自专栏desperate633

LintCode 二进制求和题目分析代码

583
来自专栏武培轩的专栏

剑指Offer-包含min函数的栈

package Stack; import java.util.Stack; /** * 包含min函数的栈 * 定义栈的数据结构,请在该类型中实现一个...

2626
来自专栏Python小屋

Python类中公开方法、私有方法和特殊方法的继承原理

在Python中,对象的私有成员在类外部、派生类或程序中无法直接访问,但是可以通过“对象名._类名__私有成员名”这样一种特殊的形式来访问。 基类的构造方法和公...

3565
来自专栏测试开发架构之路

C和指针小结(C/C++程序设计)

C和指针 相关基础知识:内存的分配(谭浩强版) 1、整型变量的地址与浮点型/字符型变量的地址区别?(整型变量/浮点型变量的区别是什么) 2、int *p,指向整...

32811
来自专栏每日一篇技术文章

Swift3.0 - 属性

773
来自专栏java 成神之路

字节码分析finally块对return返回值的影响

2696
来自专栏炉边夜话

构造函数浅析

构造函数浅析<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

763
来自专栏积累沉淀

Linux shell ${}简单用法

Linux shell ${}简单用法 [转]http://linux.chinaunix.net/techdoc/develop/2007/05/05/9...

1826
来自专栏鸿的学习笔记

python的对象引用

Every object has an identity, a type and a value. An object’s identity never cha...

733

扫码关注云+社区