JS怎么判断一个对象是否为空
4个回答
展开全部
判断一个对象是否为空,介绍如下三种判断方法:
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('非空对象');
}
展开全部
视频讲解是javascript面向对象编程语言中关于Object类的知识,重点讲解了通过该类中提供的方法hasOwnProperty可以判断属性是否存在。由于面向对象中的继承特性,那么其他对象也会自动拥有该方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Javascript语言的设计不够严谨,很多地方一不小心就会出错。举例来说,请考虑以下情况。
现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明。用自然语言描述的算法如下:
if (myObj不存在){
声明myObj;
}
你可能会觉得,写出这段代码很容易。但是实际上,它涉及的语法问题,远比我们想象的复杂。Juriy Zaytsev指出,判断一个Javascript对象是否存在,有超过50种写法。只有对Javascript语言的实现细节非常清楚,才可能分得清它们的区别。
Javascript判断对象是否为空第一种写法
if (!myObj) {
var myObj = { };
}
其它更多方法请参考:https://panxu.net/article/8374.html
现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明。用自然语言描述的算法如下:
if (myObj不存在){
声明myObj;
}
你可能会觉得,写出这段代码很容易。但是实际上,它涉及的语法问题,远比我们想象的复杂。Juriy Zaytsev指出,判断一个Javascript对象是否存在,有超过50种写法。只有对Javascript语言的实现细节非常清楚,才可能分得清它们的区别。
Javascript判断对象是否为空第一种写法
if (!myObj) {
var myObj = { };
}
其它更多方法请参考:https://panxu.net/article/8374.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var obj = {};
obj == false; // true
// 所以可以这样:
if (obj) {
// 这个意思是把obj强制转换成bool值,故会被转成false然后在if中做判断
// false
} else {
// true
}
// 如果obj不是一个空对象
var obj = {id: 1};
obj == true; // true
// 原理同上
或者 :
var obj=null;
if(!obj){
//TODO:如果为空执行的代码
}
js
实例如下:if (typeof(obj) == undefined) {//操作语句}如果typeof(obj) == undefined 为true则该对象不存在,当前脚本还没有定义该对象
其他的写法要注意:
// 这种方法不起作用
if (x == undefined)//操作语句//
对象属性不存在,
声明了变量但从未赋值。实例:<html<body
<script type=text/javascript
if (typeof(ActiveXObject)==undefined)
{alert(不存在ActiveXObject)}else
{alert(存在ActiveXObject!!)}
</script</body
</html //返回的是:存在ActiveXObject,因为该对象是js里已经制定的对象已经由js定义声明过的,只要是js制定存在的都是非 undefined
但是如果改为:typeof(ActiveXObject1)==undefined 则返回的是不存在了ActiveXObject1
另外typeof(t1)==undefined 如果这个对象不存在于该脚本范围内,或者如果t1 是声明的变量但是没有初始化也就是没有赋值两者都会返回undefined
判断元素是否存在:
<script language=javascript
function changelocation(){
if(document.getElementById(payment_info))
alert('true');else
alert('false');}
</script>
obj == false; // true
// 所以可以这样:
if (obj) {
// 这个意思是把obj强制转换成bool值,故会被转成false然后在if中做判断
// false
} else {
// true
}
// 如果obj不是一个空对象
var obj = {id: 1};
obj == true; // true
// 原理同上
或者 :
var obj=null;
if(!obj){
//TODO:如果为空执行的代码
}
js
实例如下:if (typeof(obj) == undefined) {//操作语句}如果typeof(obj) == undefined 为true则该对象不存在,当前脚本还没有定义该对象
其他的写法要注意:
// 这种方法不起作用
if (x == undefined)//操作语句//
对象属性不存在,
声明了变量但从未赋值。实例:<html<body
<script type=text/javascript
if (typeof(ActiveXObject)==undefined)
{alert(不存在ActiveXObject)}else
{alert(存在ActiveXObject!!)}
</script</body
</html //返回的是:存在ActiveXObject,因为该对象是js里已经制定的对象已经由js定义声明过的,只要是js制定存在的都是非 undefined
但是如果改为:typeof(ActiveXObject1)==undefined 则返回的是不存在了ActiveXObject1
另外typeof(t1)==undefined 如果这个对象不存在于该脚本范围内,或者如果t1 是声明的变量但是没有初始化也就是没有赋值两者都会返回undefined
判断元素是否存在:
<script language=javascript
function changelocation(){
if(document.getElementById(payment_info))
alert('true');else
alert('false');}
</script>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询