Js中的属性分为两种,一种是固有属性,另外是编程时赋预予的属性,这两种属性的判断方式是不一样的。

1.使用in关键字。

该方法可以判断对象的自有属性和继承来的属性是否存在。

var o={x:1};
"x" in o;            //true,自有属性存在
"y" in o;            //false
"toString" in o;     //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!==undefined;        //true
o.y!==undefined;        //false
o.toString!==undefined  //true

该方法存在一个问题,如果属性的值就是undefined的话,该方法不能返回想要的结果,如下。

var o={x:undefined};
o.x!==undefined;        //false,属性存在,但值是undefined
o.y!==undefined;        //false
o.toString!==undefined  //true

4.在条件语句中直接判断

var o={};
if(o.x) o.x+=1;  //如果x是undefine,null,false," ",0或NaN,它将保持不变
一般来说,用第4种比较简便

JavaScript中判断是否存在某属性相关推荐

  1. JavaScript中四种不同的属性检测方式比较

    JavaScript中四种不同的属性检测方式比较 1. 用in方法 var o = {x:1}; "x" in o; //true "y" in o; //fa ...

  2. java两字符串是否相等_Java与JavaScript中判断两字符串是否相等的区别

    JavaScript是一种常用的脚本语言,这也决定了其相对于其他编程语言显得并不是很规范.在JavaScript中判断两字符串是否相等 直接用==,这与C++里的String类一样.而Java里的等号 ...

  3. 在JavaScript中判断键盘的大写锁定键(Caps Lock)是否打开(附扫描枪相关规则)

    1,在按钮中配置onkeypress <input name='test' onkeypress ="testCapsLock(event)" /> 2,在JavaSc ...

  4. 创建健壮的isArray()函数(JavaScript中判断对象类型的种种方法)

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  5. 在javascript中判断类型

    String 一个字符串始终是一个字符串,所以这一块是很容易.除非使用new(new String)调用,否则typeof将返回"object".所以也要包含那些可以使用的字符串i ...

  6. JavaScript中判断为整数的多种方式

    JavaScript中不区分整数和浮点数,所有数字内部都采用64位浮点格式表示,和Java的double类型一样.但实际操作中比如数组索引.位操作则是基于32位整数. 方式一.使用取余运算符判断 任何 ...

  7. 使用JavaScript中的示例编号MAX_VALUE属性

    数字MAX_VALUE属性 (Number MAX_VALUE Property) MAX_VALUE Property is a Number property in JavaScript and ...

  8. js获取html元素并且修改属性,JavaScript中获取和修改元素属性的值

    在上一篇关于<JavaScript中几个操作元素对象的函数方法>文章中记录了分别通过元素的ID属性,元素的标签名,Class类名来获取元素的节点对象. 今天记录两个函数可以用来获取和修改获 ...

  9. JavaScript中函数里的arguments属性

    <!DOCTYPE html> <html lang="en">     <head>         <meta charset=&qu ...

最新文章

  1. Oracle CDC (Change Data Capture)更新数据捕获——概述
  2. 项目需求|3D结构光扫面(项目经费50万)
  3. opencv转pytorch
  4. 控制台输入与Math Random的基本使用
  5. django官方文档1.11编翻:1-1-1概述
  6. js判断是安卓手机还是ios
  7. Kubernetes:全面了解 Deployment
  8. Windows 集成 FTP 服务器配置–WS08R2已验证
  9. Python版点菜订单
  10. WordPress多语言插件
  11. centos ifconfig 无法使用问题
  12. 图像梯度-Sobel算子
  13. find ctime 加减n时间范围
  14. c语言中math的作用,C语言Math函数库简介
  15. Deadline vs Qube vs Muster
  16. 至少144只独角兽在等着IPO,数据不好,PE 给的估值可能保不住了
  17. 阿里云物联网平台-数据解析脚本详解
  18. TinyXML2 学习
  19. Kylin(二) 安装与搭建
  20. 如何提升论文写作能力?

热门文章

  1. win8下面卸载MYSQL数据库
  2. liunx 下巧妙使用代理服务器(squid)
  3. N900超频和刷9G-home一气呵成
  4. hdu 3046(最小割最大流)
  5. hdu-4028 The time of a day
  6. nyoj116士兵杀敌2
  7. MasterSlave是什么?
  8. 117. Populating Next Right Pointers in Each Node II
  9. JAVA --BYTECODE
  10. LeetCode204——count primes