我想知道JavaScript中null和undefined之间的区别。
当前回答
null-它是一个赋值值,与变量一起使用以表示任何值(它是对象)。
undefined-它是一个没有赋值的变量,所以JavaScript会给它赋值一个undefineed(它是一种数据类型)。
未声明-如果根本没有创建变量,则称为未声明。
其他回答
基本上,Undefined是javascript在运行时创建的一个全局变量,无论null是否意味着没有给变量赋值(实际上null本身就是一个对象)。
让我们举个例子:
var x; //we declared a variable x, but no value has been assigned to it.
document.write(x) //let's print the variable x
未定义,这是您将获得的输出。
现在
x=5;
y=null;
z=x+y;
你将得到5作为输出。这是Undefined和null之间的主要区别
根据Ryan Morr关于这一主题的详尽文章。。。
“通常,如果您需要为变量或属性分配非值,将其传递给函数,或从函数返回,null几乎总是最佳选项。简单地说,JavaScript使用未定义,程序员应该使用null。”
参见探索空和未定义的永恒深渊
好吧,当我们听到null和undefined时,我们可能会感到困惑,但让我们简单地开始吧,它们都是假的,在很多方面都很相似,但JavaScript的奇怪部分,使它们有一些显著的区别,例如,typeof null是“object”,而typeof undefineed是“undefined'。
typeof null; //"object"
typeof undefined; //"undefined";
但如果你用下面的==检查它们,你会发现它们都是假的:
null==undefined; //true
此外,您可以将null赋给对象属性或原语,而undefined可以通过不赋给任何对象来实现。
我创建了一个快速的图像,以一目了然地显示差异。
null是一个特殊值,表示“无值”。null是一个特殊的对象,因为typeof null返回“object”。
另一方面,undefined表示变量尚未声明,或未给定值。
在Javascript中,null是一个空值或不存在的值,必须赋值。但Undefined表示已声明变量,但未定义值。
let a = null;
console.log(a); // null
let b;
console.log(b); // undefined
在JS中,null和undefined都是原始值。您还可以查看以下代码行
console.log(typeof null); //Object
console.log(typeof undefined); //undefined
console.log(10+null); // 10
console.log(10+undefined); //NaN