面试被问到,不是很会,学习下。
区别
null 表示没有对象(空对象指针),转化为数值时为 0 ,这也是为什么 typeof null 返回 object 的原因。
console.log(Number(null)) // 0
console.log(typeof null) // object
undefined 表示缺少值,转化为数值时为 NaN
console.log(Number(undefined)) // NaN
undefined 典型用法
- 变量被声明了,但没有赋值时,就等于 undefined 。
let num
console.log(num) // undefined
- 调用函数时,应该提供的参数没有提供,该参数等于 undefined。
function fun(a) {
console.log(a) // undefined
}
fun()
- 对象没有赋值的属性,该属性的值为 undefined。
const obj = {}
console.log(obj.a) // undefined
- 函数没有返回值时,默认返回 undefined 。
function fun() {}
console.log(fun()) // undefined
null 的典型用法 :
- 作为函数的参数,表示该函数的参数不是对象,用于判断。
function fun(a) {
if (a !== null) {
// 进行一系列操作
}
}
- 作为对象原型链的终点。
console.log(Object.prototype.__proto__) // null
本文详细介绍了JavaScript中的`null`和`undefined`的区别,包括它们在转化为数值时的行为以及在不同场景下的典型用法。`null`表示没有对象,常用于函数参数判断和对象原型链终点;而`undefined`表示值的缺失,常见于未初始化的变量、未提供的函数参数和未定义的对象属性。了解这些差异对于JavaScript编程至关重要。
1828

被折叠的 条评论
为什么被折叠?



