在理解undefined和null的差异之前,我们先来看看它们的相似点。
它们都属于JavaScript的7种基本类型。
let primitiveTypes = [‘string’number’,’null’undefined’,’boolean’symbol’, ‘bigint’];
它们是属于falsy值类型,可以使用Boolean (value)或!! value将其转换为布尔值时,值 为 false
console. log(!!null); // false
console. log(!!undefined); // false
console. log(Boolean(null)); // false
console. log(Boolean(undefined)); // false
接着来看看它们的区别。
undefined是未指定特定值的变量的默认值,或者没有显式返回值的函数,如:console. log(l), 还包括对象中不存在的属性,这些JS引擎都会为其分配undefined值。
let _thisIsUndefined;
const doNothing = () => {};
const someObj = {
a : ay ,
b : "bee",
c : "si"
};
console. log(_thisIsUndefined) ; // undefined
console. log(doNothing()); // undefined
console. log(someObj["d"]); // undefined
null是『不代表任何值的值』。null是已明确定义给变量的值。在此示例中,当
方法未引发错误时,我们将获得null值。
fs. readFile(‘path/to/file’,(e,data) => {
console. log(e) ; //当没有错误发生时,打印null
if(e) {
console. log(e);
}
console. log(data);
});
在比较null和undefined时,我们使用==时得到true,使用===时得到false:
console. log(null = undefined); // true
console. log (null == undefined) ; // false
Was this helpful?
0 / 0