javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > JS undefined与null

关于JS中的undefined与null详解

作者:施主来了

在JavaScript中,undefined和null是两个特殊的值,用于表示缺失或空值,文章通过代码示例详细介绍undefined与null作用及使用方法,感兴趣的同学可以借鉴一下

undefined 是一个表示未定义或未赋值的原始值。它在以下情况下使用:

let x;
console.log(x); // undefined
let obj = { name: "John", age: 30 };
console.log(obj.address); // undefined
let arr = [1, 2, 3];
console.log(arr[3]); //undefined
function foo() {
  // 没有明确返回值
}
console.log(foo()); // undefined

相比之下,null 是一个表示空值或没有对象引用的特殊值。它通常由程序员显式赋予变量或属性,表示该值为空。例如:

let x = null;
console.log(x); // null

null 主要用于以下情况:

let obj = null; // 初始化为 null
obj = { name: "John", age: 30 }; // 后续设置为对象
function foo(arg) {
  if (arg === null) {
    console.log("参数为空");
  } else {
    console.log("参数不为空");
  }
}
foo(null); // 参数为空
foo("Hello"); // 参数不为空

需要注意的是,undefinednull 是不同的类型。undefined 是一个类型为 undefined 的值,而 null 是一个类型为 object 的值。然而,在相等性比较(=====)中,它们是相等的,因为它们都表示着相同的含义——空值。

console.log(undefined == null); // true
console.log(undefined === null); // false

在编程中,通常使用 undefined 来表示未定义或未赋值的状态,使用 null 来表示有意地将一个值设置为空。

当涉及到undefinednull的更多细节时,还有一些要注意的事项:

let x;
console.log(typeof x); // "undefined"
let y = null;
console.log(typeof y); // "object"

默认参数值:

function foo(x = "default") {
  console.log(x);
}
foo(); // "default"
foo(undefined); // "default"
foo(null); // null

安全导航操作符(Optional Chaining):

let obj = { name: "John", address: { city: "New York" } };
console.log(obj.address?.city); // "New York"
console.log(obj.address?.zipCode); // undefined

变量赋值:

let x = undefined;
console.log(x); // undefined
let y = null;
console.log(y); //  null

以上就是关于JS中的undefined与null详解的详细内容,更多关于JS undefined与null的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文