JavaScript中Null与Undefined的区别解析

 更新时间:2015年06月30日 11:27:26   投稿:junjie  
这篇文章主要介绍了JavaScript中Null与Undefined的区别解析,本文给出了多个代码实例讲解它们之间的区别,需要的朋友可以参考下

在JavaScript中存在这样两种原始类型:Null与Undefined。这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined?

Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。

Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

复制代码 代码如下:

var oValue; 
alert(oValue == undefined); //output "true" 

这段代码显示为true,代表oVlaue的值即为undefined,因为我们没有初始化它。

复制代码 代码如下:

alert(null == document.getElementById('notExistElement')); 

当页面上不存在id为"notExistElement"的DOM节点时,这段代码显示为"true",因为我们尝试获取一个不存在的对象。

复制代码 代码如下:

alert(typeof undefined); //output "undefined" 
alert(typeof null); //output "object" 

第一行代码很容易理解,undefined的类型为Undefined;第二行代码却让人疑惑,为什么null的类型又是Object了呢?其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来。在今天我们可以解释为,null即是一个不存在的对象的占位符,但是在实际编码时还是要注意这一特性。

复制代码 代码如下:

alert(null == undefined); //output "true" 

ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。但是,如果在一些情况下,我们一定要区分这两个值,那应该怎么办呢?可以使用下面的两种方法。
复制代码 代码如下:

alert(null === undefined); //output "false" 
alert(typeof null == typeof undefined); //output "false" 

使用typeof方法在前面已经讲过,null与undefined的类型是不一样的,所以输出"false"。而===代表绝对等于,在这里null === undefined输出false。

相关文章

  • JavaScript生成随机字符串的方法

    JavaScript生成随机字符串的方法

    这篇文章主要介绍了JavaScript生成随机字符串的方法,涉及javascript中random的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • JavaScript判断DOM何时加载完毕的技巧

    JavaScript判断DOM何时加载完毕的技巧

    处理HTML DOM文档存在一个难题是,JavaScript可以在DOM完全加载之前执行,这会给你的代码引发不少的潜在问题;针对这个问题,本文给予适当的解决方法,仅供参考
    2012-11-11
  • Javascript 构造函数 实例分析

    Javascript 构造函数 实例分析

    一般构造函数没有返回值,他们通过关键字this初始化对象,没有返回值。当然一个构造器允许返回一个对 象,如果这样的话 返回的对象将变成new 表达式的值,在这种情况下值为this的对象将抛弃
    2008-11-11
  • TypeScript中interface和type的区别详解

    TypeScript中interface和type的区别详解

    本文主要介绍了TypeScript中interface和type的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • javascript使用正则实现去掉字符串前面的所有0

    javascript使用正则实现去掉字符串前面的所有0

    这篇文章主要介绍了javascript使用正则实现去掉字符串前面的所有0,需要的朋友可以参考下
    2018-07-07
  • 基于Bootstrap的网页设计实例

    基于Bootstrap的网页设计实例

    这篇文章主要介绍了基于Bootstrap的网页设计实例,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • JS+Vue实现三级全选单选

    JS+Vue实现三级全选单选

    这篇文章主要为大家详细介绍了JS+Vue实现三级全选单选,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 微信小程序实现省市区三级地址选择

    微信小程序实现省市区三级地址选择

    这篇文章主要为大家详细介绍了微信小程序实现省市区三级地址选择,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • 15分钟深入了解JS继承分类、原理与用法

    15分钟深入了解JS继承分类、原理与用法

    这篇文章主要介绍了JS继承分类、原理与用法,结合实例形式较为详细的总结分析了javascript原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承和寄生组合式继承等相关原理及使用方法,需要的朋友可以参考下
    2019-01-01
  • 通过继承IHttpHandle实现JS插件的组织与管理

    通过继承IHttpHandle实现JS插件的组织与管理

    最近,项目中的用到的Js插件越来越多,有的是用原生javascript写的,有的是调用的jquery插件,页面上Js和Css文件的引用也越来越混乱,而且Js文件之间还有引用先后的依赖关系
    2010-07-07

最新评论