js 判断是不是空、值是否存在 您所在的位置:网站首页 js判断字段不为空 js 判断是不是空、值是否存在

js 判断是不是空、值是否存在

2023-11-26 10:41| 来源: 网络整理| 查看: 265

判断数组是否存在某个值: Array.indexOf(val) > -1 //存在 (缺陷:一是不够语义化,它的含义是找到参数值的第一个出现位置,所以要去比较是否不等于-1,表达起来不够直观。二是,它内部使用严格相等运算符(===)进行判断,这会导致对NaN的误判。) Array.includes(val) 判断对象是否存在某个字段: obj["key"] != undefined (缺陷: 如果这个key定义了,并且就是很2的赋值为undefined) !("key" in obj) obj.hasOwnProperty("key") typeof item.editFlag === "undefined" 判断是否为空

JavaScript本身没有判断一个变量是不是空值的函数,因为变量有可能是string,object,number,boolean等类型,类型不同,判断方法也不同。所以在文章中写了一个函数,用以判断JS变量是否空值,如果是undefined, null, '', NaN,false,0,[],{} ,空白字符串,都返回true,否则返回false

function isEmpty(v) { switch (typeof v) { case 'undefined': return true; case 'string': if (v.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true; break; case 'boolean': if (!v) return true; break; case 'number': if (0 === v || isNaN(v)) return true; break; case 'object': if (null === v || v.length === 0) return true; for (var i in v) { return false; } return true; } return false; }

测试

isEmpty() //true isEmpty([]) //true isEmpty({}) //true isEmpty(0) //true isEmpty(Number("abc")) //true isEmpty("") //true isEmpty(" ") //true isEmpty(false) //true isEmpty(null) //true isEmpty(undefined) //true typeof typeof undefined === 'undefined' typeof null === 'object' //Boolean typeof true === 'boolean' //Number typeof 1 === 'number' //String typeof '111' === 'string' //Array typeof ['a','b'] === 'object' //Object typeof {a:1,b:2} === 'object' 判断数组方法: instanceof Array objName.constructor==Array (缺陷:在不同iframe中创建Array并不共享prototype;继承Array也为true,如:b.prototype=new Array) length,splice,length不可枚举(缺陷:object.propertyIsEnumerable('length')) Array.isArray(objName) obj.prototype.toString.call(objName)==='[object Array]'


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有