JavaScript 中的 in 关键字

在 JavaScript 中,我经常会使用 for(key in ..) 语句来遍历对象的 key ,这是一种很常用的方式.
这里需要留意, 其实 for(.. in ..) 语句也可以用来遍历数组,其中的 key 就是数组的 index (索引值,0开始) .
除了在 for(.. in ..) 语句中使用, in 也可以作为一个单独的关键字使用,用来判断某个属性或者元素是否存在与数组或者对象.一般会用在判断语句中,下面进行说明


数组

var pig = ['head', 'hand', 'leg'];
console.log('head' in pig); // false
console.log('0' in pig); // true
console.log(4 in pig); // false

通过 in操作判断数组是否存在某个索引,逐个分析:

  1. 判断 head 字符串是否为 pig的索引,很明显,索引应该是数字,所以 false
  2. 判断 pig 是否有索引为字符串 '0',可以看到最后判断结果为 true, 这是因为执行 in 关键字判断时, JS引擎进行了隐式转换
  3. 判断数字 4 是否为 pig 数组的索引,结果 false

对象

var pig = {head: 'head', hand: 'head', leg: 'leg'};
console.log(head in pig); // false
console.log('head' in pig); // true

通过 in 操作判断对象是否有某个键名,逐个分析:

  1. 判断变量 head 是否为 pig 的键名, 这里是一个未声明未赋值的变量,当然不会是 pig 的键名,返回 false
  2. 判断字符串 head 是否为 pig 的键名,返回 true.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,510评论 0 16
  • 有期限就能放手一搏。
    星如雨下阅读 270评论 3 2
  • 第十七章 内容简介及目录 年后,公司里一片新气象。区域设计部总经理因为个人原因离开公司,急需人顶替。 总部高层也有...
    林秋千阅读 821评论 0 3
  • 容器的同步控制与只读设置 一、同步控制:多线程并发访问集合的线程安全常用的容器ArrayList、HashSet、...
    _hello__world_阅读 451评论 0 0
  • 自 吴念真 阿照跟她的爸爸一点都不亲,就连“爸爸”似乎也没叫过几次。 这个爸爸其实是她的继父。妈妈在她四岁的时候离...
    在下京墨阅读 217评论 0 0

友情链接更多精彩内容