美文网首页
js--for..in和in操作符

js--for..in和in操作符

作者: 栗子酥小小 | 来源:发表于2017-03-23 15:16 被阅读0次
两种使用方式:
  1. for..in
    • 返回所有能够通过对象访问的、可枚举的属性,其中包括实例属性,也包括原型属性。
      • 通过obj.hasOwnProperty(xxx)可以判断某个属性是否是实例属性。
    • Object.keys()传入一个对象作为参数,可以返回仅存在于该对象上的所有可枚举属性的字符串数组,不包括原型对象上的属性。
    • Object.getOwnPropertyNames(),传入一个对象作为参数,可以返回所有存在于该实例对象上的属性名称,不论是否可枚举,但不包括原型对象上的属性。
      ES5中,将constructor和prototype的enumerable设置为false.。
  2. 单独使用
    • in操作符会在通过对象能够访问给定属性时返回true,无论该实例存在于实例中还是原型中。
    • 区别:obj.hasOwnProperty(),只有在属性存在于实例中时才返回true,如果只存在于原型对象中,实例中没有,则会返回false。
    • 结合in和obj.hasOwnProperty()可以找出只存在于原型对象上的属性:return !obj.hasOwnProperty( name ) && ( name in obj ); ,如果总体返回true,则obj.hasOwnProperty( name )返回也是true,则是实例上的属性,如果总体返回false,说明obj.hasOwnProperty( name )为false,如果此时name in obj为true,则可以确定这是只存在于原型对象上的属性。

相关文章

  • js--for..in和in操作符

    两种使用方式: for..in返回所有能够通过对象访问的、可枚举的属性,其中包括实例属性,也包括原型属性。通过ob...

  • 5. 从头学前端之操作符

    操作符包括算术操作符(如加号和减号)、位操作符、关系操作符和相等操作符。 一元操作符 只能操作一个值的操作符叫做一...

  • Rxjava(四)之合并操作符与异常处理操作符

    前言 上文我们介绍了过滤操作符和条件操作符。这里我们接着介绍合并操作符和异常处理操作符。 合并型操作符 合并操作符...

  • Rxjava(三)之过滤操作符与条件操作符

    前言 上文我们介绍了创建操作符和变换操作符。这里我们接着介绍过滤操作符和条件操作符。 过滤型操作符 过滤型操作符顾...

  • ES笔记—基础之操作符篇

    描述:用于操作数据值的操作符,包括算术操作符(如加号和减号)、位操作符、关系操作符和相等操作符。 1、一元操作符 ...

  • JavaScript高程读书笔记(2)

    五、操作符 算数操作符、位操作符、关系操作符、 相等操作符 一元操作符++和--:注意a+++,- 位操作符按位非...

  • javascript运算符初探

    JavaScript操作符(运算符):1、一元操作符(单目操作符):递增和递减操作符(分前置型和后置型)++是递增...

  • 17_++和--操作符分析

    关键词:++和--操作符的本质、++和--操作符使用分析、贪心法:++和--表达式的阅读技巧 1.++和--操作符...

  • javascript操作符

    一元操作符 只能操作一个值得的操作符叫做一元操作符 1.递增和递减操作符 递增和递减操作符借鉴于c,具有前置型...

  • 1、基本概念(2)(JS高级笔记)

    四、操作符 4.1 一元操作符 4.1.1 递增和递减操作符 一元操作符即递增(++)和递减(--)(而各自有两个...

网友评论

      本文标题:js--for..in和in操作符

      本文链接:https://www.haomeiwen.com/subject/hhaznttx.html