我想知道JavaScript中null和undefined之间的区别。


当前回答

null-它是一个赋值值,与变量一起使用以表示任何值(它是对象)。

undefined-它是一个没有赋值的变量,所以JavaScript会给它赋值一个undefineed(它是一种数据类型)。

未声明-如果根本没有创建变量,则称为未声明。

其他回答

除了不同的含义外,还有其他区别:

对象析构函数对这两个值的作用不同:常量{a=“默认”}={a:未定义};//a是“默认值”常量{b=“默认”}={b:null};//b为空JSON.stringify()保持null,但省略未定义const json=json.stringify({undefinedValue:undefined,nullValue:null});console.log(json);//打印{“nullValue”:null}运算符类型console.log(类型未定义);//“未定义”console.log(类型为空);//“object”而不是“null”

您可能认为undefined表示系统级、意外或错误,如缺少值,null表示程序级、正常或预期缺少值。

通过JavaScript:最终指南

null是一个特殊值,表示“无值”。null是一个特殊的对象,因为typeof null返回“object”。

另一方面,undefined表示变量尚未声明,或未给定值。

如果变量未初始化,则该变量未定义。undefined不是对象。示例:var MyName;console.log(类型MyName);

检查控制台登录开发工具,它将被打印为未定义。

null是一个对象。如果您希望某个变量为null,则使用null。null变量存在,但值未知。它应该按语法方式分配给变量。null不会自动初始化。

示例:var MyName=null;console.log(类型MyName);检查csole登录开发工具,它将是一个对象。

undefined表示变量已声明但尚未赋值:

var测试var;console.log(testVar)//显示未定义console.log(testVar类型)//显示未定义

null是赋值。它可以作为无值表示分配给变量:

var testVar=空;console.log(testVar)//显示nullconsole.log(testVar类型)//显示对象

从前面的示例中可以清楚地看到,undefined和null是两种不同的类型:undefineed是类型本身(undefine),而null是对象。

证明:

console.log(null==未定义)//false(类型不同)console.log(null==undefined)//true(但为“相同值”)console.log(null==null)//true(类型和值相同)

and

null = 'value' // Uncaught SyntaxError: invalid assignment left-hand side
undefined = 'value' // 'value'