JavaScript 中的undefined vs null

JavaScript 中的undefined vs null

原文: https://howtodoinjava.com/typescript/undefined-vs-null/

如果变量已经声明但尚未初始化,则称其为“undefined”。 而“null”被分配给当时没有的变量。

简单来说,当您不为变量赋值时,JavaScript 引擎会将其视为undefinednull值是由程序员分配的,以指示变量内部没有变量,但打算在以后的程序执行中使用该值。

undefined

请参阅下面的 JavaScript 语句以了解undefined

var myVar;		//Variable declaration without assigning any value to it

console.log( myVar );	//undefined

console.log( typeof(myVar) );	//undefined

console.log( undeclaredVar );	//Uncaught ReferenceError: undeclaredVar is not defined

如果看到一个值undefined的变量,则说明:

  1. 该变量已在程序中声明。
  2. 变量没有赋值。
  3. 如果检查变量type,它将是undefined。 请注意,这是 JavaScript 中的原始类型之一:字符串,数字,布尔值,nullundefined,符号(ES6 中的新增功能)。
  4. 如果函数返回undefined,则未返回任何值。

undefined在 JavaScript 中不是保留关键字。

null

null表示故意缺乏的值。 从概念上讲,它与 Java,C# 等其他编程语言中的null非常相似。null表示缺少标识,表示变量指向没有对象。

var myVar = null;		//Variable declared and assigned to null

console.log( myVar );	//null

console.log( typeof(myVar) );	//object

请注意,null的类型为object,具有有效值,无属性,不可更改,并且系统中始终只存在相同的单个实例。

将相等运算符与nullundefined一起使用

当您想清楚地区分nullundefined变量时,请始终记住使用严格相等运算符(===)将变量与nullundefined进行比较。

了解更多:JavaScript 中的== vs ===

var myUndefinedVar;			//undefined
var myNullVar = null;		//null

myUndefinedVar == myNullVar;		//true - which not correct as both are different	

myUndefinedVar === myNullVar;		//false - correct behavior

null等于零

nullundefined之间的主要区别在于将它们转换为原始类型的方式。

  • null在执行基本操作时会转换为零(0)。
  • undefined转换为NaN
var myUndefinedVar;			//undefined
var myNullVar = null;		//null

myUndefinedVar + 100;		//NaN

myNullVar + 100;			//100

将我的问题放在评论部分。

学习愉快!