var obj = {name: 'chen',age: 18,professional:'student'}for (var k in obj) {console.log(k);         // k  输出的是属名 :name, age, professionalconsole.log(obj[k]);    // obj[k] 输出的是属性值: chen, 18 , student}

k就是key;

for in 循环主要用于遍历对象(object);

单独输出k,输出的是属性名 :name, age, professional;

单独输出 obj[k],输出的是属性值 : chen, 18 , student;

最后特别要注意的一点是: 遍历属性值和方法值时,只能用obj[k],不能用obj.k。

如今已经开始学v3了,关于只能用obj[k],不能用obj.k的问题我一直都没有搞懂,今天终于搞懂了。

说起来也有点尴尬,原来在for in函数中,得到的k是一个用var重新声明的变量,所以只能用obj[key]。

obj.k方式的话,对象的属性必须是字符串,而这里的k是一个用var重新声明的形参变量名,所以只能用字符串[变量名]的方式来获取

真正的原因是如果用obj.k,js会把k当作是obj对象中的key(当成字符串)执行,而不会当作循环中的变量再解析成对应属性去执行,就像如下所示

// 如果是obj.k, js会这么认为:不会把k当成变量,而是直接当成obj的key执行
var obj = {k: 'xxx'
}

但是obj中实际并没有k这个key,所以获取不到。

所以用obj[k]的原因是:只有用obj[k],这个k才会被js当作变量去执行,并把k解析成字符串name, age等key值,这样才能得到最终的value值

js之for in循环遍历对象(包括输出value值为什么是obj[k]而不是obj.k)相关推荐

  1. for/in 循环遍历对象的属性

    for/in 语句循环遍历对象的属性.  js中获取key得到某对象中相对应的value的方法:obj.key  js中根据动态key得到某对象中相对应的value的方法有二:  一.var key ...

  2. 如何在html页面遍历对象,javascript如何循环遍历对象?

    在JavaScript中有多种循环遍历对象的方法,下面本篇文章就来给大家介绍一下使用JavaScript循环遍历对象的方法,希望对大家有所帮助. 1.使用for 循环 for 循环是 Js 中最常用的 ...

  3. html 遍历对象属性,for/in 循环遍历对象的属性

    平时想要遍历一个对象时一般会采用for/in语句,通过for/in语句可以快速地拿到对象的key和value值 举个小栗子: var obj = {name:'wan',age:24}; for(va ...

  4. JavaScript学习(四十四)—in关键字的使用和for in循环遍历对象的属性

    JavaScript学习(四十四)-in关键字的使用和for in循环遍历对象的属性 一.in关键字的使用 作用:判断某个属性是否属于对象 格式:属性名称 in 对象名称 ; 返回值:如果返回的结果为 ...

  5. java 循环读取map_java中map的循环遍历和map的获取值的办法

    Java中Map的遍历方式了,这个其实有点像php中数组了,下文整理了一些map的循环遍历和map的获取值的办法,希望能帮助到各位. map的循环遍历方式  代码如下 复制代码 package com ...

  6. 在JS中利用for...in循环遍历对象

    for...in循环可以在js中遍历对象或者数组,比如当我们想要输出内容中的所有对象,就可以使用for...in循环 <script> //使用方法 for(键 in 对象)var obj ...

  7. JS学习20:for..in 循环遍历对象

    在此之前我们对于for循环已经非常熟悉了,在此我就不多做赘述了.do-while循环也就比while循环多循环一轮.那 for .. in循环呢? for...in 语句用于对数组或者对象的属性进行循 ...

  8. 原生JS 将json数据循环遍历到HTML中

    原生JS 将数组的数据循环遍历到HTML中 html如下(图片地址为本地保存的)<div id="article"><!-- <div class=&quo ...

  9. js进行取余循环遍历

    项目场景: 比如一个列表,当需要只有三个图依次循环显示时,循环遍历增加到第四五六等等依然是三个图按照顺序排列 解决方案: 可以用取余:i%3 需要循环几个后面的数写几就行 0%3=0 1%3=1 2% ...

最新文章

  1. 90后清华女校友范楚楚获ACM 2020唯一博士论文奖!出任MIT助理教授后再摘桂冠
  2. 线性霍尔传感器SS495、A1308、A1302
  3. Go中线程和协程的区别
  4. 26、HTML 区块
  5. Python 前端框架【Bootstrap】
  6. Winsock网络编程快速入门
  7. window.location.reload()会掉参数吗_iPhone手机电量不够用,你真的会用苹果吗?设置好这几个就OK了!...
  8. JAVA Swing 事件监听
  9. 【HTML+CSS网页设计与布局 从入门到精通】第14章-float/position/display属性
  10. 讯飞智能语音先锋者:等到人机交互与人类交流一样自然时,真正的智能时代就来了!...
  11. asp.net中实现登陆的时候用SSL
  12. 一台计算机安装了fortran语言,win10系统fortran怎么安装_win10系统fortran安装教程
  13. 计算机专业人才需求调研背景,计算机专业人才需求调研报告
  14. RHCE7 -- systemctl命令
  15. java 如何将word 转换为ftl_使用FreeMarker导出word文档(支持导出图片)
  16. 大学物理复习--变化的电磁场
  17. PHPAdmin删除外键约束
  18. 酷我音乐盒在听一遍就自己默认下载…
  19. 墙内电线漏电了怎么办
  20. 安卓手机的证书信任设置在哪_如何在Android设备上安装受信任的CA证书?

热门文章

  1. #今日论文推荐# 陈天奇、王威廉等人推荐:ACL最佳论文奖得主给新入行研究者的一点建议
  2. c语言有效的预处理命令,9、C语言之预处理命令(示例代码)
  3. [Python机器学习]Nagel-Schreckenberg(交通流)模型
  4. 苹果xr截屏怎么截_原来苹果手机可实现长截屏!学到了,以后不用羡慕别人手机了...
  5. 史上最全电脑硬盘修复方法
  6. 红米1S联通版_标注:2013029_官方线刷包_救砖包_解账户锁
  7. 正则表达式 行首行尾替换
  8. 再谈SQL-to-SQL翻译器
  9. 神州租车——为用户提供精细化租车服务
  10. 怎样将语音转化为文字