区别Javascript中的Null与Undefined

时间:2007-12-13 20:24:00 

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

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

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

js 代码


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



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

js 代码


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



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

js 代码


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



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

js 代码


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



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

js 代码


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



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

标签:Null,Undefined,Javascript
0
投稿

猜你喜欢

  • SpringBoot集成Flyway进行数据库版本迁移管理的步骤

    2024-01-13 19:18:53
  • 使用sp_xml_preparedocument处理XML文档的方法

    2011-09-30 11:56:15
  • PHP获取url的函数代码

    2023-10-15 12:45:00
  • 通过T-SQL语句实现数据库备份与还原的代码

    2011-12-01 08:02:15
  • Python多线程通信queue队列用法实例分析

    2023-09-22 21:11:44
  • 浅谈python 导入模块和解决文件句柄找不到问题

    2023-12-07 03:40:07
  • python的dataframe转换为多维矩阵的方法

    2021-08-19 08:59:09
  • Python Celery动态添加定时任务生产实践指南

    2023-06-29 16:57:12
  • Windows Server 2003下修改MySQL 5.5数据库data目录

    2024-01-14 17:42:28
  • Python 基础教程之包和类的用法

    2021-10-31 16:58:19
  • 解决Python 爬虫URL中存在中文或特殊符号无法请求的问题

    2022-04-17 13:47:18
  • sysbench-0.4.12编译安装和CPU测试例子分享

    2024-01-24 10:06:21
  • 使用python实现kmean算法

    2022-09-17 13:07:22
  • go各种import的使用方法讲解

    2024-05-02 16:25:32
  • python pandas处理excel表格数据的常用方法总结

    2023-06-02 19:49:47
  • 在 Windows 下搭建高效的 django 开发环境的详细教程

    2023-08-31 06:14:12
  • 详解C#把DataTable中数据一次插入数据库的方法

    2024-01-17 20:23:51
  • 运用ASP调用数据库中视图及存储过程

    2008-02-03 15:33:00
  • python pptx复制指定页的ppt教程

    2023-08-20 22:54:50
  • 在VSCode中配置PHP开发环境的实战步骤

    2023-06-06 02:13:06
  • asp之家 网络编程 m.aspxhome.com