js之for in循环遍历对象(包括输出value值为什么是obj[k]而不是obj.k)
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)相关推荐
- for/in 循环遍历对象的属性
for/in 语句循环遍历对象的属性. js中获取key得到某对象中相对应的value的方法:obj.key js中根据动态key得到某对象中相对应的value的方法有二: 一.var key ...
- 如何在html页面遍历对象,javascript如何循环遍历对象?
在JavaScript中有多种循环遍历对象的方法,下面本篇文章就来给大家介绍一下使用JavaScript循环遍历对象的方法,希望对大家有所帮助. 1.使用for 循环 for 循环是 Js 中最常用的 ...
- html 遍历对象属性,for/in 循环遍历对象的属性
平时想要遍历一个对象时一般会采用for/in语句,通过for/in语句可以快速地拿到对象的key和value值 举个小栗子: var obj = {name:'wan',age:24}; for(va ...
- JavaScript学习(四十四)—in关键字的使用和for in循环遍历对象的属性
JavaScript学习(四十四)-in关键字的使用和for in循环遍历对象的属性 一.in关键字的使用 作用:判断某个属性是否属于对象 格式:属性名称 in 对象名称 ; 返回值:如果返回的结果为 ...
- java 循环读取map_java中map的循环遍历和map的获取值的办法
Java中Map的遍历方式了,这个其实有点像php中数组了,下文整理了一些map的循环遍历和map的获取值的办法,希望能帮助到各位. map的循环遍历方式 代码如下 复制代码 package com ...
- 在JS中利用for...in循环遍历对象
for...in循环可以在js中遍历对象或者数组,比如当我们想要输出内容中的所有对象,就可以使用for...in循环 <script> //使用方法 for(键 in 对象)var obj ...
- JS学习20:for..in 循环遍历对象
在此之前我们对于for循环已经非常熟悉了,在此我就不多做赘述了.do-while循环也就比while循环多循环一轮.那 for .. in循环呢? for...in 语句用于对数组或者对象的属性进行循 ...
- 原生JS 将json数据循环遍历到HTML中
原生JS 将数组的数据循环遍历到HTML中 html如下(图片地址为本地保存的)<div id="article"><!-- <div class=&quo ...
- js进行取余循环遍历
项目场景: 比如一个列表,当需要只有三个图依次循环显示时,循环遍历增加到第四五六等等依然是三个图按照顺序排列 解决方案: 可以用取余:i%3 需要循环几个后面的数写几就行 0%3=0 1%3=1 2% ...
最新文章
- 90后清华女校友范楚楚获ACM 2020唯一博士论文奖!出任MIT助理教授后再摘桂冠
- 线性霍尔传感器SS495、A1308、A1302
- Go中线程和协程的区别
- 26、HTML 区块
- Python 前端框架【Bootstrap】
- Winsock网络编程快速入门
- window.location.reload()会掉参数吗_iPhone手机电量不够用,你真的会用苹果吗?设置好这几个就OK了!...
- JAVA Swing 事件监听
- 【HTML+CSS网页设计与布局 从入门到精通】第14章-float/position/display属性
- 讯飞智能语音先锋者:等到人机交互与人类交流一样自然时,真正的智能时代就来了!...
- asp.net中实现登陆的时候用SSL
- 一台计算机安装了fortran语言,win10系统fortran怎么安装_win10系统fortran安装教程
- 计算机专业人才需求调研背景,计算机专业人才需求调研报告
- RHCE7 -- systemctl命令
- java 如何将word 转换为ftl_使用FreeMarker导出word文档(支持导出图片)
- 大学物理复习--变化的电磁场
- PHPAdmin删除外键约束
- 酷我音乐盒在听一遍就自己默认下载…
- 墙内电线漏电了怎么办
- 安卓手机的证书信任设置在哪_如何在Android设备上安装受信任的CA证书?
热门文章
- #今日论文推荐# 陈天奇、王威廉等人推荐:ACL最佳论文奖得主给新入行研究者的一点建议
- c语言有效的预处理命令,9、C语言之预处理命令(示例代码)
- [Python机器学习]Nagel-Schreckenberg(交通流)模型
- 苹果xr截屏怎么截_原来苹果手机可实现长截屏!学到了,以后不用羡慕别人手机了...
- 史上最全电脑硬盘修复方法
- 红米1S联通版_标注:2013029_官方线刷包_救砖包_解账户锁
- 正则表达式 行首行尾替换
- 再谈SQL-to-SQL翻译器
- 神州租车——为用户提供精细化租车服务
- 怎样将语音转化为文字