JavaScript中null与undefined的区别及比较方法

作者:函数茶馆

时间:2026-10-30

浏览:478

本文详解JavaScript中两个特殊值null和undefined的定义与区别。通过示例展示如何检查属性是否存在,并对比使用相等运算符(==)与等同运算符(===)在判断null和undefined时的不同行为,帮助开发者准确处理空值逻辑。

文章目录

null与undefined的基本定义

JavaScript语言包含两个特殊的原始值:undefined和null,在处理它们时需要特别注意。当访问未初始化的变量,或者尝试读取对象中不存在的属性时,返回的结果即为undefined。

null与undefined的基本定义


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Learn4UndefinedAndNull</title>
</head>
<body>
<script>
var myData = {
name:"Luka",
weather:"sunny"
};
document.writeln("Prop: "+myData.doesntexits);
</script>
</body>
</html> 

运行上述代码的输出结果如下:

Prop: undefined

JavaScript还定义了另一个特殊值null,它与undefined存在细微差异。undefined通常表示变量尚未被赋值或属性不存在;而null则用于显式表示一个值已存在,但该值并非有效的对象、字符串、数字或布尔类型,即代表一个“无值”(no value)状态。

以下代码通过分别使用undefined和null来展示两者的具体差异:


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Learn4UndefinedAndNull</title>
</head>
<body>
<script>
var myData = {
name:"Luka"
};
//读取 weather 属性
document.writeln("Var: "+myData.weather+"<br />");
//判断对象是否具有 weather 这个属性
document.writeln("Prop: "+("weather" in myData)+"<br /><br />");
myData.weather = "sunny";
document.writeln("Var: "+myData.weather+"<br />");
document.writeln("Prop: "+("weather" in myData)+"<br /><br />");
myData.weather = null;
document.writeln("Var: "+myData.weather+"<br />");
document.writeln("Prop: "+("weather" in myData)+"<br /><br />");
</script>
</body>
</html> 

程序运行后的输出结果为:

Var: undefined Prop: false Var: sunny Prop: true Var: null Prop: true

检测null或undefined的方法

1. 检测变量或属性是否为undefined或null

若需判断某个属性是否为null或undefined(无论具体是哪一个),可以直接利用if语句配合逻辑非运算符(!)来实现。


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Learn4UndefinedAndNull</title>
</head>
<body>
<script>
var myData = {
name:"Luka",
city:null
};
if(!myData.name){
document.writeln("name is null or undefined <br /><br />");
}else {
document.writeln("name is not null or undefined <br /><br />")
}
if(!myData.city){
document.writeln("city is null or undefined <br /><br />");
}else {
document.writeln("city is not null or undefined <br /><br />")
}
if(!myData.weather){
document.writeln("weather is null or undefined <br /><br />");
}else {
document.writeln("weather is not null or undefined <br /><br />")
}
</script>
</body>
</html> 

执行上述代码后的输出显示:

name is not null or undefined city is null or undefined weather is null or undefined

使用运算符区分null和undefined

2. 区分null与undefined

在比较两个值时,具体方法取决于实际需求。如果希望将undefined和null视为等同处理,应使用相等运算符(==),此时JavaScript会执行类型转换,使得值为undefined的变量与值为null的变量判定为相等。若需严格区分null和undefined,则必须使用等同运算符(===)。


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Learn4UndefinedAndNull</title>
</head>
<body>
<script>
var firstVal = null;
var secondVal;
var equality = firstVal == secondVal;
var identity = firstVal === secondVal;
document.writeln("Equality: "+equality+" <br />");
document.writeln("Identity: "+identity+" <br />");
</script>
</body>
</html> 

代码执行后的输出结果如下:

Equality: true Identity: false

以上介绍了JavaScript中关于null和undefined值比较的基础知识,希望能对读者有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章