null 和 undefined 的区别

null是javascript的关键字,它用来表示一个特殊值,常用来描述“空值”。对null执行typeof预算,结果返回字符串“object”,也就是说。可以将null认为是一个特殊的对象值,含义是“非对象”。但实际上,通常认为null是它自有类型的唯一一个成员,它可以表示数字,字符串和对象是“无值”的,大多数编程语言和js一样含有null.

js中还有第二个值表示值得空缺,用未定义的值表示更深层次的“空值”。它是变量的一种取值,表示变量没有初始化,如果要查询对象属性或数组元素的值时返回undefined则说明这个属性或元素不存在。如果函数没有返回任何值,则返回undefined,引用没有提供实参的函数形参的值也只会得到undefined.undefined是预定义的全局变量(它和null不一样,它不是关键字),它的值就是“未定义”。在ECMAScript3中,undefined是可读/写的变量,可以给它赋任意值。这个错误在ECMAScript5中做了修正,undefined在该版本中是只读的。如果使用typeof运算符得到undefined的类型,则返回“undefined”,表明这个值是这个类型的唯一成员,

尽管null和undefined是不同的,但它们都表示“值的空缺”,两者往往可以互换,判断相等运算符“==”认为两者是相等的(要使用严格相等运算符“===”来区分它们)。在希望值是布尔类型的地方它们的值都是假值,和false类似。null和undefined都不包含任意的属性和方法。实际上,使用“.”和“[]”来存取这两个值的成员或方法都会产生一个类型错误。

以下是测试结果:

根据第一条和第二条输出null和undefined的类型可以得出三四条结论,即null 和undefined值相等都是空值,但是类型不同,所以===
的时候是false.原理跟五、六条的判断一样123 和‘123’值相等,但是一个是数值类型,一个是字符窜。所以===为false

直接输出一个x会报错,定义了x但未给其赋值。则为undefined,最后一条直接z=null 意思即是定义z是一个object类型,但其内容为空。

根据undefined的意思,在定义的时候给值赋值为undefined是不合理的。最笨的理解方法,undefined本来就表示未定义,但是在定义的时候又给赋值undefined,这样子跟它本来的意思自行矛盾。违背了初衷。如下图会报语法错误。

这样子应该很清楚了,恩。很清楚了:)

时间: 2024-10-07 04:47:36

null 和 undefined 的区别的相关文章

tips null和undefined的区别

tips null和undefined的区别 1.undefined类型 undefined类型只有一个值,即特殊的undefined.在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,例如:        var demo;        alert(demo == undefined);//true    这个例子只声明了变量,但未进行初始化.它的结果和下面的例子是等价的.        var demo = undefined;            alert

浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂

var num = 1;    var str = '1';    var test = 1;    test == num  //true 相同类型 相同值    test === num //true 相同类型 相同值    test !== num //false test与num类型相同,其值也相同, 非运算肯定是false    num == str  //true 把str转换为数字,检查其是否相等.    num != str  //false == 的 非运算    num ==

js的基本类型有哪些?引用类型有哪些?(二)------null和undefined的区别

null和undefined的区别 1.类型的区别 console.log(typeof(undefined));//undefinedconsole.log(typeof(null));//objectconsole.log(null==undefined);//trueconsole.log(null===undefined);//false ------------延伸,为什么console.log(typeof(null));//object-----这是因为es设计时认为,null表示

JavaScript中null和undefined的区别

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

JS中Null与Undefined的区别

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

null与undefined的区别

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

javascript中null和undefined的区别到底是什么?

8年前我开始学习js的时候,对我来说比较诡异的一个事情是undefined和null都代表空值.那么他们之间明确的不同点是什么呢?他们都能去定义空值,而且null == undefined的值也是TRUE. 大部分现代语言像Ruby,Python,或者Java都只有一个空值nil 或者null,  这是很明智的方法. 而js中,如果一个变量或者一个对象没有进行初始化,(编译器)就会返回一个undefined. 例如: let company; company; // => undefined l

js中null 和undefined的区别

参考文章: http://www.jb51.net/article/27937.htm http://www.cnblogs.com/eastday/archive/2010/03/03/1677324.html 首先: null == undefined ;  // true , ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的. null === undefined ;  // false, 但是它们两个 Null typeof null ; // o

javascript null与undefined的区别

undefined表示"缺少值",就是此处应该有一个值,但是还没有赋值.典型用法是: (1)变量被声明了,但没有赋值时,就等于undefined. (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined. (3)对象没有赋值的属性,该属性的值为undefined. (4)函数没有返回值时,默认返回undefined. var oValue; alert(oValue == undefined); //output "true" null用来表示尚未