有哪些方法可以检测JSjs给对象添加属性存在属性重复

javascript检测对象中是否存在某个属性判断方法小结
字体:[ ] 类型:转载 时间:
检测对象中属性的存在与否可以通过以下几种方法来判断:使用in关键字、使用对象的hasOwnProperty()方法、用undefined判断、在条件语句中直接判断,感兴趣的朋友可以了解下哈
检测对象中属性的存在与否可以通过几种方法来判断。 1.使用in关键字该方法可以判断对象的自有属性和继承来的属性是否存在。
代码如下: var o={x:1}; "x" //true,自有属性存在 "y" //false "toString" //true,是一个继承属性
2.使用对象的hasOwnProperty()方法 该方法只能判断自有属性是否存在,对于继承属性会返回false。
代码如下: var o={x:1}; o.hasOwnProperty("x");    //true,自有属性中有x o.hasOwnProperty("y");    //false,自有属性中不存在y o.hasOwnProperty("toString"); //false,这是一个继承属性,但不是自有属性
3.用undefined判断 自有属性和继承属性均可判断。
代码如下: var o={x:1}; o.x!== //true o.y!== //false o.toString!==undefined //true
该方法存在一个问题,如果属性的值就是undefined的话,该方法不能返回想要的结果,如下。
代码如下: var o={x:undefined}; o.x!== //false,属性存在,但值是undefined o.y!== //false o.toString!==undefined //true
4.在条件语句中直接判断 代码如下: var o={}; if(o.x) o.x+=1; //如果x是undefine,null,false," ",0或NaN,它将保持不变
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具本文主要介绍判断JS对象是否拥有某种属性的两种方式,感兴趣的朋友可以借鉴下!
两种方式,稍微有区别
1,in 运算符
复制代码 代码如下:
var obj = {name:'jack'};&
alert('name' in obj); // --& true&
alert('toString' in obj); // --& true&
可看到无论是name,还是原形链上的toString,都能检测到返回true。
2,hasOwnProperty 方法&
复制代码 代码如下:
var obj = {name:'jack'};&
obj.hasOwnProperty('name'); // --& true&
obj.hasOwnProperty('toString'); // --& false&
原型链上继承过来的属性无法通过hasOwnProperty检测到,返回false。
需注意的是,虽然in能检测到原型链的属性,但for in通常却不行。
当然重写原型后for in在IE9/Firefox/Safari/Chrome/Opera下是可见的。
最新图文资讯
相关文章列表:
站长圈推荐文章
 -   -   -   -   -   - 有哪些方法可以检测JS对象存在属性重复_百度知道
有哪些方法可以检测JS对象存在属性重复
我有更好的答案
&!DOCTYPE html PUBLIC &-//W3C//DTD XHTML 1.0 Transitional//EN& &http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&&
&title& New Document &/title&
&meta name=&Generator& content=&EditPlus&&
&meta name=&Author& content=&&&
&meta name=&Keywords& content=&&&
&meta name=&Description& content=&&&
&script type=&text/javascript&&
function lookProperty(obj){
ob=eval(obj);
var Property=&&;
for(var i in ob){
Property+=&属性:&+i+&&br/&&;
document.getElementById(&myp&).innerHTML=P
&div id=&myp&&&/div&
&button onclick=&lookProperty(currentStyle)&&查看属性&/but...
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&

我要回帖

更多关于 js给对象添加属性 的文章

 

随机推荐