javscript中的null和undefined异同

先看代码来了解null的undefined的差异和相同之处

//null和undefined的比较
test(‘null==undefined‘, () => {
  expect(null==undefined).toBe(true);
})

test(‘null===undefined‘, () => {
  expect(null===undefined).toBe(false);
})

//null和undefined的类型
test(‘typeof null‘, () => {
  expect(typeof null).toBe("object");
})

test(‘typeof undefined‘, () => {
  expect(typeof undefined).toBe("undefined");
})

可以看到null和undefined输入不同的类型。
实际上null的类型是Null(首字母大写),该类型仅仅有一个值就是null.
undefined的类型是Undefined(首字母大写),该类型仅仅有一个值就是undefined.
所以tyepof null输出 object ,*****严格来说是一个js的bug********

null和undefined在使用上看起来并没有大的差别,他们的差别主要表现在语义上。
null表示变量或者属性的值是null.
undefined表示变量的值根本不存在,或者属性根本不存在.

//看下面的代码:
var obj={};
obj.A=null;// 该用法是正确用法。
obj.A=undefined;//从语义角度,该用法是**错误**用法, 需要避免给变量或者属性赋值undefined
delete obj.A //从语义角度,该用法是**正确**用法.

原文地址:https://www.cnblogs.com/0xMe/p/11386313.html

时间: 2024-11-15 05:19:52

javscript中的null和undefined异同的相关文章

Javscript中的null和undefined

1.null是JavaScript关键字,含义是“非对象”,它可以表示数字.字符串和对象是“无值”的. var x = null; typeof x ;//返回“object” var x=null,y=null; x===y;//返回true !null;//返回true 2.undefined表示更深层次的”空值“,它的值就是”未定义“. 它是变量的一种取值,表明变量没有初始化. undefined和null不一样,它不是关键字,它是预定义的全局变量. 如果要查询对象属性或数组元素的值时返回

聊一聊js中的null、undefined与NaN

零.寒暄 翻翻自己的博客,上一篇竟然是六月26号的,说好的更新呢?回顾刚刚过去的这个七月,整天都是公司的入职培训加上自己的小论文,每天奋战到凌晨1点多,这是要挂的节奏啊!但是不论怎么说,自己的时间管理还是出了问题,以后一定要好好的规划一下,不多说,来正题! 自己为什么要写这篇文章呢?因为在吃完早饭,消化的时候,整了几行代码,然后发现整挂了... 大致代码如下: function getByClass(clsName, parent){ if(parent=="undefined"){

JavaScript中的null和undefined

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

js中的null和undefined

null为js中的keyword,表示空值.null能够看作是object类型的一个特殊值,假设一个object的值为null,表示这个对象不是有效的对象. 这里的null和0不是一回事.在c++中null通常定义为0,可是在js中并非这样. undefined不是jskeyword,其为一个全局变量,即Global的一个属性,一下3种情况会返回undefined: 1.使用了一个没有定义的变量: 2.使用了已经定义但未赋值的变量.             3.使用了一个对象属性.可是该属性不存

区别Javascript中的Null与Undefined

在JavaScript中存在这样两种原始类型:Null与Undefined.这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined? Undefined类型只有一个值,即undefined.当声明的变量还未被初始化时,变量的默认值为undefined. Null类型也只有一个值,即null.null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象. js 代码 var oValue; alert(oValue == undef

JavaScript中对null和undefined的理解

前沿: 今天工作中遇到了监视一个变量是undefined,结果判断写的是==null 返回值是true,这个结果引起了我对这两个东西的兴趣. 查询了相关的文章理解并测试了.发现有以下特点: 1.广义上来讲JavaScript中null和undefined是相等的,即null==undefined 返回值是true 2.狭义上来讲JavaScript中null和undefined是不相等的,即null===undefined 返回值是false 3.值得说的是null和undefined在if判断

Javascript中的null、undefined、NaN

1.判断彼此是否相等 function btnClick(){     alert(null == null);//true     alert(undefined==undefined);//true     alert(NaN==NaN);//false } 总结: (1)两个null是相等的 (2)两个undefined是相等的 (3)两个NaN是不相等的 function btnClick(){     alert(null == undefined);//true     alert(

JS中判断null、undefined与NaN的方法

写了个 str ="s"++; 然后出现Nan,找了一会. 收集资料如下判断: 1.判断undefined: 代码如下: 1 <span style="font-size: small;">var tmp = undefined; 2 if (typeof(tmp) == "undefined"){ 3 alert("undefined"); 4 }</span> 说明:typeof 返回的是字符串,有

js中的null 和undefined

参考链接:http://blog.csdn.net/qq_26676207/article/details/53100912 http://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html http://www.tuicool.com/articles/b6vqmy 关于什么时候会出现null什么时候出现undefined: 这么答: 变量定义未赋值时是undefined,或者是typeof 一个定义为未赋值的变量或没有的定义的变量: