在 JavaScript 中,null 和 undefined 都表示没有值,但是它们是有区别的。在 ECMAScript 2021 中,这个区别得到了更加明确的定义。
null 值
在 JavaScript 中,null 表示一个被赋值了,但是值为 null 的变量。这个值表示“空值”,即该变量没有值。
let myVar = null; console.log(myVar); // 输出:null
要注意的是,判断一个变量是否为 null 时,使用 ===
,而不是 ==
:
let myVar = null; console.log(myVar === null); // 输出:true console.log(myVar == null); // 输出:true
undefined 值
在 JavaScript 中,undefined 表示一个声明了但未初始化的变量,或者一个没有返回值的函数的返回值。它表示“未定义”。
let myVar; console.log(myVar); // 输出:undefined function myFunc() { // 没有 return } console.log(myFunc()); // 输出:undefined
判断一个变量是否为 undefined 时,也使用 ===
,而不是 ==
:
let myVar; console.log(myVar === undefined); // 输出:true console.log(myVar == undefined); // 输出:true
现在,我们可以通过如下代码来检查一个给定变量的值是否为 null 或 undefined:
-- -------------------- ---- ------- -------- ----------------- - -- ------ --- ----- - ------------------ --- ------- - ---- -- ------ --- ---------- - ------------------ --- ------------ - ---- - ------------------ --- - - ------- - - ----------------- -- --------- --- ----- ---------------------- -- --------- --- ---------- -------------------- -- --------- --- ------
如何正确使用 null 和 undefined
在实际开发中,我们应该避免将变量赋值为 undefined。相反,应该使用 null 表示变量被赋值了,但是没有实际值。这有助于清晰地表达代码中的意图。
另外,我们在编写函数时,应该明确函数的返回值类型。如果函数不需要返回值,那么就明确返回值类型为 void,而不是让函数默认返回 undefined。这样可以提高代码的可读性和维护性。
-- -------------------- ---- ------- -------- -------------- ---- - ------------------ ------------ -- -- ------ - -------- ----------- ------ - ---- - ------ ----- ------- - --- ----- - ----------- -- ------ --- ----- - ------------------ --- ------- - ---- - ------------------ --- - - ------- - -------------- -- --------- ----------
总结
在 ECMAScript 2021 中,null 和 undefined 被明确定义了各自的语义。了解它们的区别,有助于我们写出更加清晰、可维护的代码。在编写代码时,应该尽可能地避免使用 undefined,而使用 null 表示变量被赋值了但是没有实际值。同时,在函数中明确返回值类型,也有助于提高代码的可读性和维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6658311bd3423812e4e123ac