javascript判断对象、字符串、数组是否为空(兼容绝大部分浏览器)

// 用变量保存可以加速对对象原型的hasOwnProperty的访问。
var hasOwnProperty = Object.prototype.hasOwnProperty;

function isEmpty(obj) {
    // 本身为空直接返回true
    if (obj == null) return true;

    // 然后可以根据长度判断,在低版本的ie浏览器中无法这样判断。
    if (obj.length > 0)    return false;
    if (obj.length === 0)  return true;

    //最后通过属性长度判断。
    for (var key in obj) {
        if (hasOwnProperty.call(obj, key)) return false;
    }

    return true;
}

例子:

isEmpty(""), // true
isEmpty([]), // true
isEmpty({}), // true
isEmpty({length: 0, custom_property: []}), // true

isEmpty("Hello"), // false
isEmpty([1,2,3]), // false
isEmpty({test: 1}), // false
isEmpty({length: 3, custom_property: [1,2,3]}) // false

时间: 2024-12-15 01:17:31

javascript判断对象、字符串、数组是否为空(兼容绝大部分浏览器)的相关文章

JavaScript判断对象和数组

在调用后端接口时,由于后端接口的不规范统一,接口最外层在没有数据时返回的是空数组(其实更想要的是空json对象),而在有数据时返回的是json对象,所以在接收到后端返回的接口时就需要首先判断返回的数据是对象还是数组,这里提供一些方法 方法一: //判断是否为数组 function isArray(obj) { return obj instanceof Array; } //判断是否为对象 function isObject(obj) { return obj instanceof Object

判断字符串数组里面为空

有的时候为了判断一个字符串数组里面是否有值,或者是否有我们想要的值: 比如:判断 char name[13] = {0}; 经过一系列的赋值或者其他的操作,需要判断里面的值为空,即没有任何内容. strcmp(name, "\0"); 返回值如果是0,则说明里面是\0,即没有任何值. 比较函数还有 strncmp(); memcmp();

javascript 判断对象类型

typeof typeof是一个一元运算符,它返回的结果 始终是一个字符串,对不同的操作数,它返回不同的结果. 此表总结了typeof所有可能的返回值: 操作数类型 返回值 undefined "undefined" Null "object" Boolean "boolean" Number "number" String "string" 函数对象 "function" E4X XM

JavaScript判断输入的内容是否为空,应该注意的一点!

JavaScript 我们经常要判断一个输入框中是否输入了内容,如果未输入内容就要弹出提示框告诉用户未输入内容! 但是这里有一个问题,如果用户输入的是一个空格 或者是一些其它空字符,这时如果不注意,就达不到要求了! 下面我给我出一段JavaScript代码用来解决以上问题: Js代码   //提交查询内容 function formSubmit() { var condId = document.getElementById("searchProductText"); var text

Javascript 判断对象是否相等

在Javascript中相等运算包括"==","==="全等,两者不同之处,不必多数,本篇文章我们将来讲述如何判断两个对象是否相等? 你可能会认为,如果两个对象有相同的属性,以及它们的属性有相同的值,那么这两个对象就相等.那么下面我们通过一个实例来论证下: var obj1 = { name: "Benjamin", sex : "male" } var obj2 = { name: "Benjamin",

JavaScript判断对象类型及节点类型、节点名称和节点值

一.JavaScript判断对象类型 1.可以使用typeof函数判断对象类型 1 function checkObject1(){ 2 var str="str"; 3 console.log(typeof(str))//输出"string"; 4 console.log(typeof(str)=="string")//输出true; 5 }? 2.使用对象的构造函数属性(constructor),来判断对象的类型: 1 function ch

java利用反射机制判断对象的属性是否为空

java利用反射机制判断对象的属性是否为空: Map<String,String> validateMap = new LinkedHashMap<String, String>(); validateMap.put("serial", "编号");validateMap.put("major", "专业"); public static <T> String validateFiledIs

07.C#中如何排除/过滤/清空/删除掉字符串数组中的空字符串

方式一:使用lambda表达式筛选过滤掉数组中空字符串         1 /// <summary> 2 /// 使用lambda表达式排除/过滤/清空/删除掉字符串数组中的空字符串 3 /// </summary> 4 /// <param name="args"></param> 5 static void Main(string[] args) 6 { 7 string[] strArray = { "",&q

判断二维数组是否为空

在Java程序设计里面,相信大部分人都知道如何判断一个一维数组是否为空,示例如下:public int primeNumberCount(int[] array){ if(array==null||array.length==0) return 0;    那么在二维数组中,又如何判断二维数组为空呢?在判断之前,我们要先了解如何获取二维数组的行数和列数,示例如下: public boolean Find(int target, int[][] array) { int rows = array.

javascript 判断对象是否为空,字符串是否为空

//判断对象是否为空 //console.log(isEmptyObject());           //true //console.log(isEmptyObject({}));         //true //console.log(isEmptyObject(null));       //true //console.log(isEmptyObject(23));         //true //console.log(isEmptyObject({"te": 2})