undefined 和 null 有什么区别?
在理解 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(1),还
包括对象中不存在的属性,这些 IS 引擎都会为其分配 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 是已明确定义给变量的值。在此示例中,当 fs. readFile 方法未
引发错误时,我们将获得 null 值。
fs. readFile('path/to/file',(e,data) => {
console. log(e);//当没有错误发生时,打印 null