首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javascript中for与for var的区别

javascript中for与for var的区别
EN

Stack Overflow用户
提问于 2016-05-26 18:26:32
回答 4查看 1.6K关注 0票数 9

我在PHP中填充了一个关联数组,并在JS函数中访问该数组。我使用json_encode()将PHP数组转换为JS数组。我使用IE8来运行此应用程序。在某些安装了IE 8 for(;;)的计算机上运行,但在其他计算机上运行失败。在某些安装了IE 8 for(var in)的计算机上运行,但在其他计算机上运行失败。下面的代码有什么区别?

代码语言:javascript
运行
复制
for (var k = 0; k < ruleList.length; k++){ //do something } 

for (var x in ruleList){ //do something }
EN

回答 4

Stack Overflow用户

发布于 2016-05-26 18:39:53

嗯,for(i in x)可以同时使用数组和对象

代码语言:javascript
运行
复制
var x = [1, 2, 3];
for(var i in x) console.log(x[i]);

var o = {1:1, 2:2, 3:3};
for(var i in o) console.log(o[i]);

for(;;)仅适用于数组

代码语言:javascript
运行
复制
var x = [1, 2, 3];
for(var i=0; i<x.length; i++) console.log(x[i]);

var o = {1:1, 2:2, 3:3};
for(var i=0; i<o.length; i++) console.log(x[i]); // returns undefined because object o doesn't have property length

但是您可以使用Object.keys来获取object的键数组

代码语言:javascript
运行
复制
var o    = {1:1, 2:2, 3:3};
var keys = Object.keys(o);
for(var i=0; i<keys.length; i++) console.log(o[keys[i]]);

常见的做法是对对象使用for(i in x),对数组使用for(;;)

票数 4
EN

Stack Overflow用户

发布于 2016-05-26 18:30:37

就像它在the MDN documentation中说的那样

for...in语句以任意顺序迭代对象的可枚举属性。对于每个不同的属性,都可以执行语句。

第一条语句用于数组,第二条语句用于获取对象的所有键。

票数 2
EN

Stack Overflow用户

发布于 2016-05-26 18:37:40

这个问题已经有了讨论和答案。

请参阅Question了解其中的区别。

for...in语句以任意顺序迭代对象的可枚举属性。对于每个不同的属性,都可以执行语句。

for语句创建一个循环,该循环由三个可选表达式组成,这三个表达式用括号括起来并用分号分隔,后跟在循环中执行的一条语句或一组语句。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37458144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档