`
hongtoushizi
  • 浏览: 376508 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

判断JavaScript对象为null或者属性为空

阅读更多

首先说下null与undefined区别:

对已声明但未初始化的和未声明的变量执行typeof,都返回"undefined"。

null表示一个空对象指针,typeof操作会返回"object"。

一般不显式的把变量的值设置为undefined,但null相反,对于将要保存对象的变量,应明确的让该变量保存null值。

var bj;
alert(bj);  //"undefined"
bj = null;
alert(typeof bj);  //"object"
alert(bj == null);  //true
bj = {};
alert(bj == null);  //false

 下面两个函数是邓师兄给我的,感谢啊。

/*
 * 检测对象是否是空对象(不包含任何可读属性)。
 * 方法既检测对象本身的属性,也检测从原型继承的属性(因此没有使hasOwnProperty)。
 */
function isEmpty(obj)
{
    for (var name in obj)
    {
        return false;
    }
    return true;
};

 这里所说的空对象,到底是 {} 还是 null . 我写了一个测试用例。

var a = {};
a.name = 'realwall';
console.log(isEmpty(a));  //false
console.log(isEmpty({}));  //true
console.log(isEmpty(null));  //true
//注意参数为null时无语法错误哦,即虽然不能对null空指针对象添加属性,但可以使用for in 语句。

  

/*
 * 检测对象是否是空对象(不包含任何可读属性)。
 * 方法只既检测对象本身的属性,不检测从原型继承的属性。
 */
function isOwnEmpty(obj)
{
    for(var name in obj)
    {
        if(obj.hasOwnProperty(name))
        {
            return false;
        }
    }
    return true;
};

 

{}与null的区别:

这个东西很重要。

var a = {};
var b = null;
 
a.name = 'realwall';
b.name = 'jim'; //这里会报错,b为空指针对象,不能像普通对象一样直接添加属性。
b = a;
b.name = 'jim'; //此时 a 和 b 指向同一个对象。a.name, b.name 均为'jam'
分享到:
评论

相关推荐

    简单方法判断JavaScript对象为null或者属性为空

    #### 如何判断JavaScript对象为null或者属性为空 要判断一个对象是否为 `null` 或者属性为空,可以使用 `typeof` 操作符,或者自定义的函数进行检测。 ##### 使用 `typeof` 操作符 ```javascript var bj; alert...

    js判断一个属性是否为空1

    在JavaScript编程语言中,判断一个属性是否为空是一...通过这种方式,我们可以更全面地判断JavaScript中的属性是否为空,从而确保在各种情况下都能得到正确的结果。在实际编程中,应根据具体需求选择最合适的检查方法。

    js中判断对象是否为空的三种实现方法

    总结来说,判断JavaScript对象是否为空需要根据实际需求选择合适的判断方式,可以是简单的类型检查,也可以是更复杂的属性遍历。理解这些方法的原理和适用场景,有助于编写出更健壮和可靠的代码。

    javascript检测对象中是否存在某个属性判断方法小结

    `hasOwnProperty()`是JavaScript对象的一个内置方法,它用于判断对象是否具有指定的自有属性,不考虑继承属性。例如: ```javascript var o = {x: 1}; o.hasOwnProperty("x"); // true,自有属性中有x o....

    js删除对象/数组中null、undefined、空对象及空数组方法示例

    在JavaScript编程中,有时我们需要处理复杂的数据结构,例如对象和数组,确保它们不包含无效的值,如`null`、`undefined`、空对象或空数组。这些无效值可能会导致错误或不必要的处理开销。本篇文章将深入探讨如何在...

    JavaScript 判断一个对象{}是否为空对象的简单方法

    本文将详细介绍几种判断JavaScript对象是否为空的简单方法,并对每种方法的适用场景和效率进行分析。 首先,我们需要明确什么是“空对象”。在这里,我们定义一个空对象为没有任何自有属性(不包括原型链上的属性)...

    Javascript中的false、0、null、undefined和空字符串对象[归类].pdf

    `undefined`通常表示变量已声明但未初始化,而`null`则表示预期的值不存在,或者有意为之的“空”值。它们在用途上有所不同,`null`有时用于表示一个对象引用的有意终止,而`undefined`则更多地与变量状态的不确定性...

    JavaScript中的prototype(原型)属性研究

    当试图访问一个对象的属性时,如果该对象自身没有这个属性,JavaScript会向上查找其`__proto__`,直到找到该属性或者到达原型链的顶端(即`null`)。 2. **添加共享方法**:通过在函数的prototype上添加方法,所有...

    JavaScript中判断对象类型的几种方法总结

    每个JavaScript对象都有一个`constructor`属性,它指向创建该对象的构造函数。这可以用来判断未知对象的类型。例如,通过比较`arr.constructor === Array`,可以确定`arr`是否为数组。然而,`constructor`属性在...

    javascript跨浏览器的属性判断方法.docx

    ### JavaScript 跨浏览器属性判断方法 #### 概述 在前端开发过程中,由于不同浏览器对JavaScript API的支持程度不一,开发者经常会遇到兼容性问题。为了确保应用能够在多种浏览器上正常运行,开发人员需要掌握跨...

    Vue前端判断数据对象是否为空的实例

    如果对象没有属性或者所有属性值都是`undefined`,那么我们可以认为该对象为空。例如: ```javascript function isEmptyObject(obj) { if (typeof obj !== 'object' || obj === null) return false; for (var key...

    js判断空对象的实例(超简单)

    在JavaScript中,判断一个对象是否为空是一个常见的需求,特别是在处理数据验证、对象初始化或检查对象是否有任何属性或方法时。本文将详细介绍如何在JavaScript中判断一个对象是否为空,并提供两个实用的方法。 ...

    JQ 判断变量是否为空.rar

    这通常涉及到检查变量是否已定义、是否有值,或者更具体地,值是否为null、undefined、空字符串、零、空数组或空对象。本教程将深入探讨如何使用JavaScript和jQuery来执行这些检查。 首先,我们要明确“空”在不同...

    Javascript类型系统之undefined和null浅析_.docx

    与 `undefined` 相比,`null` 是一个表示“空值”的关键字,它被设计为一个空对象指针,尽管在 JavaScript 中它的类型标识为 `'object'`。这是一个历史遗留问题,因为在 JavaScript 最初的设计中,`null` 被认为是一...

    'guid' 为空或不是对象

    当你遇到“'guid' 为空或不是对象”的错误时,这意味着在你的代码中,尝试访问或操作的`guid`变量可能是未定义的、null,或者它不是一个预期的对象类型。 这个问题可能由多种原因引起,以下是一些可能的情况和解决...

    JS 中如何判断 undefined null.rar

    2. 对象属性设置为 `null`,表示该属性已被清除: ```javascript let obj = { someProperty: null }; ``` 3. 有些函数返回 `null` 作为特定情况的信号,表示没有找到结果或其他预期值。 ### 判断 `undefined` ...

    JavaScript 核心参考教程 内置对象

    4. **Boolean对象**:用于处理布尔值,`false`、`0`、`NaN`、`null`、空字符串和`undefined`会被转换为`false`。 5. **Date对象**:处理日期和时间,提供了多种获取和设置日期的方法,如: - `getDate()`:获取...

Global site tag (gtag.js) - Google Analytics