JavaScript 判断空值、NULL、undefined 的方法对比

作者:函数茶馆时间:2026-10-27 00:19:24浏览:469

本文详细对比了 JavaScript 中五种空值和假值(undefined, null, false, "", 0)的特性。重点解析了如何使用 typeof 操作符检测变量类型,并强调在判断 undefined 时必须使用 === 运算符。文章提供了针对字符串、数组、对象等不同数据类型的空值检测代码示例,帮助开发者准确处理数据为空的情况。

JavaScript 原始类型与 typeof 操作符

JavaScript 包含五种原始类型:boolean、number、string、null 和 undefined。在鉴别这些原始类型时,通常会使用 typeof 操作符。该操作符适用于字符串、数字、布尔值和未定义类型的检测。

五种空值和假值的特性

一、JavaScript 中的五种空值和假值

这五个值分别是 undefined、null、false、""(空字符串)和 0。它们的共同点在于,在执行 if 语句时都会进入 false 分支,而在执行非语句(如 !value)时都会进入 true 分支。

1、undefined:表示变量已声明但未初始化,即处于“未定义”状态;

2、null:是 JavaScript 关键字,用于描述“空值”,表示数字、字符串或对象“无值”。其 typeof 结果为 object,但它不具备对象实例的属性和方法;

3、false、""、0:在 if 语句中表现为假值,但它们代表有意义的数据,仅在特定语境下被用作空值或假值;

使用 typeof 判断变量定义状态

若需判断变量是否已定义,可使用 typeof 操作符,其返回的数据类型如下:

typeof(undefined) == 'undefined'
typeof(null) == 'object'
typeof("") == 'String'
typeof(0) == 'number'
typeof(false) == 'boolean'

typeof 返回一个字符串,可能的值有六种:"number"、"string"、"boolean"、"object"、"function" 和 "undefined"。

提示:测试某个值是否为 undefined 时,必须使用 === 运算符,因为 == 运算符会将 undefined 视为等价于 null。

注释:null 表示无值,而 undefined 表示一个未声明的变量,或已声明但未赋值的变量,或一个不存在的对象属性。例如:var tmp = undefined; if (typeof (tmp) == "undefined"){ alert ("undefined"); }

数据为空检测代码示例

二、数据是否为空的代码示例

//    var a = "";
//    var a = " ";
//    var a = null;
//    var a = undefined;
//    var a = [];
//    var a = {};
//    var a = NaN;
    
    if(a === undefined) { // 只能用 === 运算来测试某个值是否是未定义的
        console.log("为undefined");
    }
    
    if(a == null) { // 等同于 a === undefined || a === null
        console.log("为null");
    }

    
    // String    
    if(a == "" || a == null || a == undefined){ // "",null,undefined
        console.log("为空");
    }
    if(!a){ // "",null,undefined,NaN
        console.log("为空"); 
    }
    if(!$.trim(a)){ // "",null,undefined
        console.log("为空");
    }

    // Array
    if(a.length == 0){ // "",[]
        console.log("为空");
    }
    if(!a.length){ // "",[]
        console.log("为空");
    }

    // Object {}
    if($.isEmptyObject(a)){ // 普通对象使用 for...in 判断,有 key 即为 false
        console.log("为空");
    }

至此,关于 JavaScript 判断空值、NULL 和 undefined 的方法对比介绍完毕。如需了解更多相关内容,请搜索本站以往文章或继续浏览后续文章,感谢支持!

作者最新文章