【JavaScript】null和 undefined 的区别是什么?

本文详细介绍了JavaScript中的`null`和`undefined`的区别,包括它们在转化为数值时的行为以及在不同场景下的典型用法。`null`表示没有对象,常用于函数参数判断和对象原型链终点;而`undefined`表示值的缺失,常见于未初始化的变量、未提供的函数参数和未定义的对象属性。了解这些差异对于JavaScript编程至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面试被问到,不是很会,学习下。

区别

null 表示没有对象(空对象指针),转化为数值时为 0 ,这也是为什么 typeof null 返回 object 的原因。

console.log(Number(null)) // 0
console.log(typeof null) // object

undefined 表示缺少值,转化为数值时为 NaN

console.log(Number(undefined)) // NaN

undefined 典型用法

  1. 变量被声明了,但没有赋值时,就等于 undefined 。
let num
console.log(num) // undefined
  1. 调用函数时,应该提供的参数没有提供,该参数等于 undefined。
function fun(a) {
  console.log(a) // undefined
}
fun()
  1. 对象没有赋值的属性,该属性的值为 undefined。
const obj = {}
console.log(obj.a) // undefined
  1. 函数没有返回值时,默认返回 undefined 。
function fun() {}
console.log(fun()) // undefined

null 的典型用法 :

  1. 作为函数的参数,表示该函数的参数不是对象,用于判断。
function fun(a) {
  if (a !== null) {
    // 进行一系列操作
  }
}
  1. 作为对象原型链的终点。
console.log(Object.prototype.__proto__) // null
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值