`

js null and undifined

    博客分类:
  • js
阅读更多

http://m.studyofnet.com/news/66.html

 

 

JS脚本中Null与Undefined的区别

来源:JavaScript学习    发布时间:2013/8/15

JavaScript 中一共有 5 种基本类型,分别是 String、Number、Boolean、Null 和 Undefined 。前 3 种都比较好理解,后面两种就稍微复杂一点。 Null 类型只有一个值,就是 null ; Undefined 类型也只有一个值,即 undefined 。 null 和 undefined 都可以作为字面量(literal)在 JavaScript 代码中直接使用。

null 与对象引用有关系,表示为空或不存在的对象引用。当声明一个变量却没有给它赋值的时候,它的值就是 undefined 。

 

一、undefined 的值会出现在如下情况:

1、从一个对象中获取某个属性,如果该对象及其 prototype 链 中的对象都没有该属性的时候,该属性的值为 undefined 。


2、一个 function 如果没有显式的通过 return 来返回值给其调用者的话,其返回值就是 undefined 。有一个特例就是在使用new的时候。


3、JavaScript 中的 function 可以声明任意个形式参数,当该 function 实际被调用的时候,传入的参数的个数如果小于声明的形式参数,那么多余的形式参数的值为 undefined 。

 

二、下面通过一段代码说明两者的区别

 

 
JScript 代码   复制

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

var oValue;   
alert(oValue == undefined); //output "true"
 
//当页面上不存在id为"notExistElement"的DOM节点时,这段代码显示为"true",因为我们尝试获取一个不存在的对象

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

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

//ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。

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

//如果在一些情况下,我们一定要区分这两个值,那应该怎么办呢?可以使用下面的两种方法。
//使用typeof方法在前面已经讲过,null与undefined的类型是不一样的,所以输出"false"。而===代表绝对等于,在这里null === undefined输出false。

alert(null=== undefined); //output "false"   
alert(typeofnull==typeof undefined); //output "false"   
分享到:
评论

相关推荐

    JavaScript中null与undefined分析

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

    js中 关于undefined和null的区别介绍.docx

    在JavaScript编程语言中,`undefined`和`null`是两种不同的数据类型,它们虽然在某些情况下可能被视为等价,但有着本质的区别。了解这两者的差异对于编写健壮的JavaScript代码至关重要。 首先,`undefined`是一种...

    详解JavaScript逻辑And运算符

    JavaScript中的逻辑AND运算符(&&)是一个非常关键的逻辑操作符,它用于判断两个表达式是否都为真。当使用双和号(&&)时,它遵循短路逻辑,这意味着如果第一个表达式已经能确定结果,那么就不会再评估第二个表达式...

    100-Days-of-JS-and-TS-源码.rar

    《100-Days-of-JS-and-TS-源码》是一个编程学习资源,主要涵盖了JavaScript(JS)和TypeScript(TS)的基础到高级的知识点。这个压缩包包含了一个持续100天的学习计划,旨在帮助开发者系统地提升在JS和TS领域的技能...

    javascript 中文帮助文档

    在JavaScript中,基本的数据类型包括字符串、数字、布尔值、null、undefined、对象和Symbol。其中,字符串是不可变的字符序列,可以使用模板字面量来方便地创建和操作;数字包括整数和浮点数,可以用十进制、八进制...

    javascript_js教程

    1. **基础语法**:JavaScript的语法结构与C语言家族相似,包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象和数组)、操作符(算术、比较、逻辑等)以及流程控制语句(如...

    JS经典代码 JavaScript 经典

    它的基础包括变量(var, let, const)、数据类型(如字符串、数字、布尔、null、undefined、对象、数组)、操作符(赋值、比较、逻辑、位运算等)、流程控制(if语句、switch、for、while、do...while循环)以及函数...

    js脚本大集合(JavaScript)

    - **变量与数据类型**:var、let、const声明变量,区分基本类型(String、Number、Boolean、Null、Undefined、Symbol)和引用类型(Object)。 - **控制流**:if/else条件判断,for/while循环,switch语句,break...

    JS.rar_javascript_js制作网页_js网页特效

    了解变量声明(var、let、const)、数据类型(字符串、数字、布尔、null、undefined、对象等)以及运算符是JavaScript的基础。 2. **DOM操作** Document Object Model(DOM)是HTML和XML文档的结构化表示。...

    JavaScript案例

    JavaScript的基础包括变量定义(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象、数组、符号和BigInt)以及操作符(算术、比较、逻辑和位运算符)。案例可能涵盖变量的声明和赋值,...

    JavaScript技术讲解,ppt文档,javaScript技术电子教程

    JavaScript是基于ECMAScript标准的,它包含了变量、数据类型(如字符串、数字、布尔值、null和undefined)、操作符(算术、比较、逻辑等)、流程控制(条件语句、循环语句)以及函数等基础概念。理解这些基础知识是...

    一套基于纯js实现的JavaScript典型应用技巧例子源码

    1. **基础语法**:JavaScript的基础包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象、数组、函数等)、操作符(算术、比较、逻辑、位运算等)以及流程控制(条件语句、...

    asp自来哦(js)javascript

    变量是存储数据的地方,JavaScript支持多种数据类型,如字符串、数字、布尔值、null、undefined、对象和符号。操作符用于比较、赋值和计算。语句如条件语句(if...else)、循环(for、while)控制程序流程。函数是一...

    js的全套学习总结,xmind版本

    首先,JavaScript的基础知识包括变量、数据类型(如字符串、数字、布尔值、null、undefined、对象、数组)、运算符(算术、比较、逻辑、位运算符)、控制结构(条件语句如if...else,循环如for、while、do...while)...

    js实例大全 js实例

    JavaScript的基础语法包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象、数组、Symbol和BigInt)以及控制流程语句(如if...else、for、while等)。实例中可能会涵盖如何...

    Head First Javascript源码

    它的核心特性包括变量、数据类型(如字符串、数字、布尔值、对象、null和undefined)、操作符、流程控制(如条件语句、循环)、函数以及对象和数组。其中,函数不仅是可执行的代码块,还可以作为值传递,体现了...

    js帮助文档

    JavaScript,也被称为JS,是一种广泛应用于网页和网络应用的编程语言,主要负责客户端的动态交互。它是ECMAScript规范的实现,由Netscape公司的Brendan Eich在1995年发明,最初用于增强网页的用户体验。尽管名字里有...

    js.rar_javascript

    它有七种原始数据类型(Boolean、Null、Undefined、Number、String、Symbol(ES6新增)和BigInt(ES10新增)**,以及一种复杂数据类型——Object。理解这些数据类型对于编写高效代码至关重要。 2. **控制结构**:包括...

Global site tag (gtag.js) - Google Analytics