翼度科技»论坛 编程开发 JavaScript 查看内容

JS中的undefined 与 null

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
在 JavaScript 中, undefined 和 null 是两个特殊的值,用于表示缺失或空值。


undefined  是一个表示未定义或未赋值的原始值。它在以下情况下使用:
1.  变量声明了但未初始化时,默认为  undefined 。
  1. let x;
  2. console.log(x); // undefined
复制代码
 
 
2. 访问对象属性或数组元素时,如果该属性或元素不存在,则返回 undefined 。
  1. let obj = { name: "John", age: 30 };
  2. console.log(obj.address); // undefined
  3. let arr = [1, 2, 3];
  4. console.log(arr[3]); // undefined
复制代码
 

3.  函数没有明确返回值时,默认返回  undefined 。
 
  1. function foo() {
  2. // 没有明确返回值
  3. }
  4. console.log(foo()); //undefined
复制代码
 


相比之下, null  是一个表示空值或没有对象引用的特殊值。它通常由程序员显式赋予变量或属性,表示该值为空。例如:
  1. let x = null;
  2. console.log(x); // null
复制代码
 

null  主要用于以下情况:
1.  初始化一个变量,以便稍后将其设置为对象。
  1. let obj = null; // 初始化为 null
  2. obj = { name: "John", age: 30 }; // 后续设置为对象
复制代码
 
2. 表示函数的参数不具有对象引用。
  1. function foo(arg) {
  2.   if (arg === null) {
  3.     console.log("参数为空");
  4.   } else {
  5.     console.log("参数不为空");
  6.   }
  7. }
  8. foo(null); // 参数为空
  9. foo("Hello"); // 参数不为空
复制代码
 

需要注意的是, undefined  和  null  是不同的类型。 undefined  是一个类型为  undefined  的值,而  null  是一个类型为  object  的值。然而,在相等性比较( ==  或  === )中,它们是相等的,因为它们都表示着相同的含义——空值。
  1. console.log(undefined == null); // true
  2. console.log(undefined === null); // false
复制代码
 

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


当涉及到 undefined 和 null 的更多细节时,还有一些要注意的事项:
1.  类型检查
    -   使用  typeof  操作符检查  undefined  值时,会返回字符串  "undefined" 。
    -   使用  typeof  操作符检查  null  值时,会返回字符串  "object" 。这是一个历史遗留问题, null  被错误地标识为对象类型。
  1. let x;
  2. console.log(typeof x); // "undefined"
  3. let y = null;
  4. console.log(typeof y); // "object"
复制代码
 
2. 默认参数值
- 当函数的参数没有传递或传递的值为 undefined 时,可以使用默认参数值。
    -   当函数的参数传递  null  值时,会将  null  视为有效值,而不会触发默认参数值。
  1. function foo(x = "default") {
  2.     console.log(x);
  3. }
  4. foo(); // "default"
  5. foo(undefined); // "default"
  6. foo(null); // null
复制代码
 
3. 安全导航操作符
- 使用安全导航操作符( ?. )可以避免访问对象属性或调用方法时出现 undefined 或 null 的错误。如果属性或方法不存在,则会返回 undefined 。
  1. let obj = { name: "John", address: { city: "New York" } };
  2. console.log(obj.address?.city); // "New York"
  3. console.log(obj.address?.zipCode); // undefined
复制代码
 
4. 变量赋值:
- 在变量赋值时, undefined 被视为一个变量可以接收的有效值。
    -   而  null  被视为一个特殊值,通常用于表示空或未定义的状态。
  1. let x = undefined;
  2. console.log(x); // undefined
  3. let y = null;
  4. console.log(y); // null
复制代码
 
 

来源:https://www.cnblogs.com/ronaldo9ph/p/17422449.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具