`
carffuca
  • 浏览: 20747 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Null与Undefined -- Practical JavaScript(一)

阅读更多
作者:Carffuca
许可协议:


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

Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

js 代码
 
  1. var oValue;  
  2. alert(oValue == undefined); //output "true"  

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

js 代码
 
  1. alert(null == document.getElementById('notExistElement'));  

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

js 代码
 
  1. alert(typeof undefined); //output "undefined"  
  2. alert(typeof null); //output "object"  

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

js 代码
 
  1. alert(null == undefined); //output "true"  

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

js 代码
 
  1. alert(null === undefined); //output "false"  
  2. alert(typeof null == typeof undefined); //output "false"  

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

下一篇:boolean原始类型与Boolean引用类型 -- Practical JavaScript(二)
分享到:
评论

相关推荐

    理解javascript中undefined和null的区别

    理解javascript中undefined和null的区别

    JavaScript中Null与Undefined的区别解析

    在JavaScript编程语言中,Null和Undefined是两种不同的原始值,它们在特定场景下有特定的含义,有时也会引起初学者的困惑。理解这两者之间的差异是编写健壮JavaScript代码的关键。 首先,Undefined类型是一个特殊的...

    javascript 中null和undefined区分和比较

    在JavaScript编程语言中,`null`和`undefined`是两种非常重要的值,它们在很多情况下容易引起混淆。本文将深入探讨两者之间的区别和比较。 首先,`undefined`是一种特殊的值,它代表变量已经被声明但没有赋值。在...

    js判断undefined类型,undefined,null,NaN的区别

    JavaScript 中的 undefined、null、NaN 的区别 在 JavaScript 中,undefined、null、NaN 是三个经常被混淆的概念,但它们有着不同的含义和用途。今天,我们将深入探讨这三个概念的区别和应用。 undefined 在 ...

    javascript类型系统--undefined和null全面了解_.docx

    在 JavaScript 中,每个变量都有一个类型,当变量未初始化或引用的对象不存在时,就会出现 `undefined` 或 `null`。 `undefined` 主要表示变量已声明但未赋值的情况。例如: ```javascript var test; // undefined ...

    JavaScript-demo-practical

    "JavaScript-demo-practical"这个项目,正如其标题所示,是一个实践性的JavaScript教程或课程,旨在帮助学习者通过实际操作来掌握这门语言。下面将详细讨论JavaScript的基础知识,以及可能在该压缩包中涵盖的主题。 ...

    计算机软件-编程源码-Javascript语言教程.zip

    在“计算机软件-编程源码-Javascript语言教程.zip”和“计算机软件-编程源码-Javascript高级教程.zip”这两个压缩包中,包含了关于JavaScript的基础与进阶知识,旨在帮助学习者掌握这一强大的脚本语言。 1. **...

    JavaScript中null与undefined分析

    ### JavaScript中null与undefined分析 #### 一、引言 在JavaScript编程语言中,`null`和`undefined`是两个非常基础且重要的概念。虽然它们经常被用来表示“无值”或“空值”,但它们之间还是存在着一些关键性的...

    JavaScript null和undefined区别分析

    一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理。于是,细想之后,写下本文,请各位大侠拍砖。 总所周知:null == undefined 但是:null !== undefined 那么这两者到底有啥区别呢? 请听俺娓娓...

    JavaScript中undefined和null的区别

    JavaScript中undefined和null的区别 JavaScript两个表示”无”的值:undefined和null。我在平时只是null用的多一点,undefined只是在报错中经常遇到。下面针对这两个数据类型的异同做一下详细的比较。 1.undefined和...

    null和undefined的区别

    undefined : 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。==运算符将两者看作相等。如果要区分两者,要使用===或typeof运算符。使用if (!object){}两者就都包含了

    Practical-Quiz-5.rar_javascript

    1. **变量与数据类型**:JavaScript支持var、let和const关键字声明变量,以及六种基本数据类型(字符串、数字、布尔值、null、undefined、Symbol和BigInt)。 2. **操作符**:包括算术操作符(+、-、*、/等)、比较...

    Javascript中的false、0、null、undefined和空字符串对象[归类].pdf

    它们在用途上有所不同,`null`有时用于表示一个对象引用的有意终止,而`undefined`则更多地与变量状态的不确定性相关联。 总结来说,理解JavaScript中的这些特殊值对于编写健壮的代码至关重要。正确识别它们的类型...

    JavaScript中的null和undefined用法解析

    在JavaScript编程语言中,`null` 和 `undefined` 是两个重要的概念,它们都用来表示某种“不存在”或“没有”的状态,但它们之间存在着微妙的差异。了解这些差异对于编写健壮的JavaScript代码至关重要。 首先,`...

    null.sys--win10 git秒退

    找一个成功的win10上面的null.sys文件,地址是C:/Window/System32/drivers/将它复制替换自己电脑上相应的文件, 然后在C:/Window/System32/目录下面找到cmd.exe文件,管理员方式运行它,并输入sc start null。若若...

    深入解析JavaScript中的`undefined`与`null`:探索它们的异同

    在JavaScript编程中,undefined和null是两种特殊的值,它们在处理变量和对象时扮演着重要的角色。尽管它们都表示“没有值”的概念,但它们之间存在着一些关键的区别。本文将深入探讨undefined和null的含义、用途以及...

    Javascript类型系统之undefined和null浅析_.docx

    与 `undefined` 相比,`null` 是一个表示“空值”的关键字,它被设计为一个空对象指针,尽管在 JavaScript 中它的类型标识为 `'object'`。这是一个历史遗留问题,因为在 JavaScript 最初的设计中,`null` 被认为是一...

Global site tag (gtag.js) - Google Analytics