我想知道JavaScript中null和undefined之间的区别。
当前回答
当您在javascript中声明一个变量时,它被赋值为undefined。这意味着变量是未被修改的,可以在将来分配任何值。这也意味着您不知道该变量在声明时将保持的值。
现在可以显式地将变量赋值为null。这意味着变量没有任何值。例如,有些人没有中间名。因此,在这种情况下,最好将值null赋给person对象的中间名变量。
现在假设某人正在访问person对象的中间名变量,并且该变量的值未定义。他不知道开发人员是否忘记初始化这个变量,或者它是否没有任何值。如果它的值为null,那么用户可以很容易地推断middlename没有任何值,并且它不是一个未触及的变量。
其他回答
null-它是一个赋值值,与变量一起使用以表示任何值(它是对象)。
undefined-它是一个没有赋值的变量,所以JavaScript会给它赋值一个undefineed(它是一种数据类型)。
未声明-如果根本没有创建变量,则称为未声明。
null是一个特殊的关键字,表示缺少值。
将其视为一种价值,例如:
“foo”是字符串,true为布尔值,1234是数字,null未定义。
undefined属性表示尚未为变量分配包含null的值。喜欢
var foo;
定义的空变量为null,数据类型为undefined
它们都表示一个没有值的变量的值
以及null不表示没有值的字符串-空字符串-
Like
var a = '';
console.log(typeof a); // string
console.log(a == null); //false
console.log(a == undefined); // false
现在如果
var a;
console.log(a == null); //true
console.log(a == undefined); //true
BUT
var a;
console.log(a === null); //false
console.log(a === undefined); // true
所以每个人都有自己的使用方法
undefined使用它来比较变量数据类型
null使用它来清空变量的值
var a = 'javascript';
a = null ; // will change the type of variable "a" from string to object
在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
看看这个。输出值一千字。
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
干杯
通常,不要使用null以避免混淆。
标准库方法返回undefined,而不是null
let a = [10];
console.log(a[1]) //=> undefined
console.log(a.find(value => value === 5)) //=> undefined
我经常在人们的代码中看到,某个变量最初未定义,然后赋值给某个值,然后通过设置为null来清除。这是不一致的,最好回到undefined。
尽管如此,如果框架使用null,或者对于json序列化,null是有意义的。