JS怎么判断一个对象是否为空

JavaScript06

JS怎么判断一个对象是否为空,第1张

判断一个对象是否为空,介绍如下三种判断方法:

1、直接用for...in...遍历属性,结果为真是“非空数组”,否则是“空数组”,代码如下:

function judgeObj(obj){

for(var a in obj){

return alert('非空对象')

}

return alert('空对象')

}

2、通过JSON自带的.stringify方法来判断,代码如下:

if(JSON.stringify(c)=='{}'){

console.log('空对象')

}

3、ES6新增的方法Object.keys(),代码如下:

if(Object.keys(obj).length==0){

console.log('空对象')

}else{

console.log('非空对象')

}

下面就是有关判断为空的简写方法。 

代码如下

if (variable1 !== null || variable1 !== undefined || variable1 !== '') { 

var variable2 = variable1 

上面的意思是说如果variable1不是一个空对象,或者未定义,或者不等于空字符串,那么声明一个variable2变量,将variable1赋给variable2。也就是说如果variable1存在那么就将variable1的值赋给variable2,若不存在则为空字符串。如下面的简写代码。 

简写代码: 

代码如下

var variable2 = variable1 || '' 

以下是不正确的方法: 

代码如下

var exp = null 

if (exp == null) 

alert("is null") 

exp 为 undefined 时,也会得到与 null 相同的结果,虽然 null 和 undefined 不一样。注意:要同时判断 null 和 undefined 时可使用本法。 

代码如下

var exp = null 

if (!exp) 

alert("is null") 

如果 exp 为 undefined,或数字零,或 false,也会得到与 null 相同的结果,虽然 null 和二者不一样。注意:要同时判断 null、undefined、数字零、false 时可使用本法。 

代码如下

var exp = null 

if (typeof exp == "null") 

alert("is null") 

为了向下兼容,exp 为 null 时,typeof null 总返回 object,所以不能这样判断。 

代码如下

var exp = null 

if (isNull(exp)) 

alert("is null") 

判断字符串是否为空 

s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ fnrtv]。 很多情况下,都是用length来直接判断字符串是否为空,如下: 

代码如下

var strings = '' 

if (string.length == 0) 

alert('不能为空') 

但如果用户输入的是空格,制表符,换页符呢?这样的话,也是不为空的,但是这样的数据就不是我们想要的吧。 

其实可以用正则表达式来把这些“空”的符号去掉来判断的 

代码如下

var strings = ' ' 

if (strings.replace(/(^s*)|(s*$)/g, "").length ==0) 

alert('不能为空') 

}

当然需要,因为前端的JS验证代码如果在用户端浏览器被禁用了,那么就不会执行该js代码进行验证,也就相当于没有做非空验证,如果这时候将数据直接在服务器端使用,那么情况可想而知;一句话,永远不要轻易相信客户提供给你的数据;当初我们的培训导师说过,你只要把使用你软件的客户当做傻瓜,思考的问题自然多于常人。