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


当前回答

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。

对于null类型,只有一个值:null。

因此,对于这两种情况,标签既是其类型,也是其值。

他们之间的区别。例如:

null是空值undefined是一个缺失的值

Or:

undefined还没有值null有一个值,但不再存在

实际上,null是一个特殊的关键字,而不是标识符,因此不能将其视为要赋值的变量。

然而,undefined是一个标识符。然而,在非严格模式和严格模式下,都可以创建一个名为undefined的局部变量。但这是一个可怕的想法!

function foo() {
    undefined = 2; // bad idea!
}

foo();

function foo() {
    "use strict";
    undefined = 2; // TypeError!
}

foo();

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

对象析构函数对这两个值的作用不同:常量{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”

看看这个。输出值一千字。

var b1=文档.getElementById(“b1”);checkif(“1,无参数”);checkif(“2,显式未定义”,未定义);checkif(“3,显式空”,空);checkif(“4,the 0”,0);checkif(“5,空字符串”,“”);checkif(“6,string”,“string”);checkif(“7,number”,123456);函数checkif(a1,a2){print(“\ncheckif(),”+a1+“:”);如果(a2==未定义){打印(“==未定义:是”);}其他{打印(“==未定义:否”);}如果(a2==未定义){打印(“==未定义:是”);}其他{打印(“==未定义:否”);}如果(a2==空){打印(“==null:YES”);}其他{打印(“==null:NO”);}如果(a2==空){打印(“==空:是”);}其他{打印(“==null:NO”);}如果(a2==“”){打印(“=='':是”);}其他{打印(“=='':否”);}如果(a2==“”){打印(“=='':是”);}其他{打印(“=='':否”);}如果(isNaN(a2)){打印(“isNaN():是”);}其他{打印(“isNaN():否”);}如果(a2){打印(“如果-?:是”);}其他{打印(“如果-?:否”);}打印(“typeof():”+typeof(a2));}函数打印(v){b1.innerHTML+=v+“\n”;}<!DOCTYPE html><html><body><pre id=“b1”></pre></body></html>

另请参见:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefinedhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaNhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/nullhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators

干杯

由于typeof返回undefined,undefineed是一种类型,其中null是一个初始值设定项,表示变量指向任何对象(实际上Javascript中的所有内容都是一个对象)。