在JavaScript中值undefined和null都表示”无”,那么它们之间有什么区别?下面本篇文章就来给大家介绍一下undefined和null的区别,希望对大家有所帮助。
undefined:
在 JavaScript 中, undefined 是一个没有设置值的变量。
typeof 一个没有值的变量会返回 undefined。
null:
在 JavaScript 中 null 表示 "什么都没有"。
null是一个只有一个值的特殊类型。表示一个空对象引用。
undefined和null的区别:
● undefined表示一个变量没有被声明,或者被声明了但没有被赋值(未初始化),一个没有传入实参的形参变量的值为undefined,如果一个函数什么都不返回,则该函数默认返回undefined。null则表示“什么都没有”,即“空值”。
● Javascript将未赋值的变量默认值设为undefined;Javascript从来不会将变量设为null。它是用来让程序员表明某个用var声明的变量时没有值的;
● undefined不是一个有效的JSON,而null是;
● null 和 undefined 的值相等,但类型不等:undefined的类型(typeof)是undefined;null的类型(typeof)是object。
null == undefined // true
null === undefined // false
typeof undefined // undefined
typeof null // object
● null和undefined之间的主要区别在于它们被转换为原始类型的方式。
在'null'上执行算术转换时,则值为0,可以使用以下代码片段验证此转换。
var v1= 5+ null;
console.log(v1)
执行时,此代码的将输出
5
但是,“undefined”不执行任何此类转换。如果您尝试将“undefined”添加到数字中,您将获得NaN或Not-a-Number。以下代码片段说明了“undefine”的这一方面。
var v2= 5+ undefined;
console.log(v2)
执行时,代码将输出:
NaN