我想知道JavaScript中null和undefined之间的区别。
当前回答
null:缺少变量值;undefined:缺少变量本身;
..,其中变量是与值关联的符号名称。
JS可以用null隐式初始化新声明的变量,但它没有。
其他回答
未定义表示变量已声明但没有值:
var var1;
alert(var1); //undefined
alert(typeof var1); //undefined
Null是赋值:
var var2= null;
alert(var2); //null
alert(typeof var2); //object
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'
如果变量未初始化,则该变量未定义。undefined不是对象。示例:var MyName;console.log(类型MyName);
检查控制台登录开发工具,它将被打印为未定义。
null是一个对象。如果您希望某个变量为null,则使用null。null变量存在,但值未知。它应该按语法方式分配给变量。null不会自动初始化。
示例:var MyName=null;console.log(类型MyName);检查csole登录开发工具,它将是一个对象。
您可能认为undefined表示系统级、意外或错误,如缺少值,null表示程序级、正常或预期缺少值。
通过JavaScript:最终指南
除了不同的含义外,还有其他区别:
对象析构函数对这两个值的作用不同:常量{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”