JavaScript中undefined和null的区别

JavaScript中undefined和nullundefined:表示没有数值,在使用var 声明变量但未对其加以初始化时,这个变量的值就是undefined

null:表示有数值,但是数值为“空”.

1. 两者的声明

声明但未定义:undefined;

1 var a;
2 console.log(a);    // 执行结果:undefined

声明且定义为null;

1 var b = null;
2 console.log(b);    //执行结果:null

2. typeof类型不同

undefined的类型是undefined;

null类型是object;

1 console.log(typeof(undefined));  //执行结果:undefined
2 console.log(typeof(null));       //执行结果:object

3. 转化为数值的类型不同

undefined转化为数值是NaN

null转化为数值是0

1 console.log(Number(undefined));        //执行结果:NaN
2 console.log(Number(undefined+10));     //执行结果:NaN
3
4 console.log(Number(null));             //执行结果:0
5 console.log(Number(null+10));          //执行结果:10

4. 两者之间 == 和 ===

==运算符比较:先判断两侧内容的数据类型,如果数据类型不同,会自动转化为相同类型,再进行比较;

===运算符比较:比较两侧内容的数据类型以及值,如果两侧内容数据类型不同,直接就是false,不会执行数据类型自动转化;

1 console.log(undefined == null);     //执行结果:true
2 console.log(undefined === null);    //执行结果:false

逆战班

原文地址:https://www.cnblogs.com/jayreally/p/12497558.html

时间: 2024-10-11 11:00:53

JavaScript中undefined和null的区别的相关文章

javascript中undefined和null的区别详解

一.问题的由来 永远不要直接使用undefined进行变量判断使用字符串"undefined"对变量进行判断 这里,undefined是原始值,在JS中undefined出现只有两种情况,一种是变量未定义.一种是定义了变量,但是没有赋值. 如果这个地方person未定义,那么利用person===undefined全等判断就会报错,person未定义但是如果使用typeof来判断,那么就不会报错了. ep: alert(person == undefined);//报错 person

JavaScript中undefined与null的区别

通常情况下, 当我们试图访问某个不存在的或者没有赋值的变量时,就会得到一个undefined值.Javascript会自动将声明是没有进行初始化的变量设为undifined. 如果一个变量根本不存在会发生什么事: >>> fooReferenceError: foo is not defined 我们得到了一个错误信息.我们在该变量上用typeof操作符看看它是什么类型: >>> typeof foo"undefined" 我们得到的结果为字符串“u

JavaScript中Undefined 和 Null的区别

Undefined 这个值表示变量不含有值. 可以通过将变量的值设置为 null 来清空变量. 例如: <script> var person; var car="Volvo"; document.write(person + "<br />"); document.write(car + "<br />"); var car=null document.write(car + "<br /&g

JS中undefined与null的区别

1.概述: 在JavaScript中存在这样两种原始类型:Null与Undefined.这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined? 有人说这两个返回值,没有什么区别,只是历史遗留问题罢了,其实还是有一点区别的. 2.null和undefined的发展史: 大多数计算机语言,有且仅有一个表示"无"的值,比如,C语言的NULL,Java语言的null,Python语言的None,Ruby语言的nil. 有点奇怪的是,Ja

JS中undefined与null的区别,附带产生undefined的历史

大多数计算机语言,有且仅有一个表示"无"的值,比如,C语言的NULL,Java语言的null,Python语言的None,Ruby语言的nil. 有点奇怪的是,JavaScript语言居然有两个表示"无"的值:undefined和null.这是为什么? 一.相似性 在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别. var a = undefined; var a = null; 上面代码中,a变量分别被赋值为undefin

javascript 中 undefined 和 null 区别

1.相同点 如果我们直接用 undefined == null  比较他们是相等的返回的将是 true. 2.区别 当我们用undefined === null 比较的时候最后返回的将是 false. A.undefined表示"缺少值",就是此处应该有一个值,但是还没有定义 (1)变量被声明了,但没有赋值时,就等于undefined. (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined. (3)对象没有赋值的属性,该属性的值为undefined. (4)函数没有

js中undefined和null的区别

undefined:表示定义未赋值 一般会出现在定义的变量但是未赋值的变量中例如 var a; console.log(a);//undefined console.log(c);//undefined null;表示定义了并赋值为null值 var a=null; console.log(a); 主要null使用在 1.声明一个变量为标明后面有赋值为对象 2.结束前,将对象设置为空,释放指向对象,将该对象设置为垃圾对象,便于回收 var obj=null; //do something obj

js 中 undefined 和null 的区别

null 表示没有对象,也就是说此处不该有值,用法是 1)作为函数的参数,表示他不是对象 2)作为对象原型链的终点(函数的原型对象constructor默认指向函数本身,原型对象除了有原型属性外,为了实现继承,还有一个原型链指针proto,该指针指向上一层的原型对象,而上一层的原型对象的结构依然类似,这样利用proto一直指向Object的原型对象上,而Object的原型对象用Object.proto = null表示原型链的最顶端,如此变形成了javascript的原型链继承,同时也解释了为什

js中 undefined 与 null的区别

null是一个空对象类型 当用document获取元素时,获取不到的时候返回的就是null, 当获取一个不存在的属性时返回的是undefined, 当用var声明一个变量并没有给变量赋值的时候,此时会自动给变量赋一个undefined, 真的没定义一个变量的时候也是undefined typeof undefined 也是undefined 直接赋值undefined的时候