javascript中for in用法
<html><body><scripttype="text/javascript">varx=2;varmycars=newArray()mycars[0]="Saab"...
<html>
<body>
<script type="text/javascript">
var x=2;
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"
mycars[3] = "BMWa"
mycars[4] = "BMWb"
mycars[5] = "BMWc"
for (x in mycars)
{
document.write(mycars[x] + "<br />")
}
</script>
</body>
</html>
这个函数中为什么无论怎么更改x的值显示结果都是将mycars顺序输出?
还有即使x未被赋值却还是能够将mycars顺序输出是为什么?
for in 到底是什么个运行方法啊,高手们求解!!!!!! 展开
<body>
<script type="text/javascript">
var x=2;
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"
mycars[3] = "BMWa"
mycars[4] = "BMWb"
mycars[5] = "BMWc"
for (x in mycars)
{
document.write(mycars[x] + "<br />")
}
</script>
</body>
</html>
这个函数中为什么无论怎么更改x的值显示结果都是将mycars顺序输出?
还有即使x未被赋值却还是能够将mycars顺序输出是为什么?
for in 到底是什么个运行方法啊,高手们求解!!!!!! 展开
2015-06-03 · 知道合伙人软件行家
关注
展开全部
1:解析:
for...in 语句
对应于一个对象的每个,或一个数组的每个元素,执行一个或多个语句。
for (variable in [object | array])
2:参数
variable
必选项。一个变量,它可以是 object 的任一属性或 array 的任一元素。
object, array
可选项。要在其上遍历的对象或数组。
3:说明
在循环的每次迭代前,variable 被赋予 object 的下一个属性或 array 的下一个元素。然后可以在循环内的任一语句中使用它,就好像正在使用 object 的该属性或 array 的该元素一样。
当在一个对象上迭代时,没有办法决定或控制把对象的成员赋给 variable 的次序。在数组内将按元素的次序执行迭代,也就是,0、1、2、......
4:示例
document.write("<font color='red'>for in用法举例--数组</font><br>");
var obj=["zhao","liang","zl","an"];
for(var j in obj)
{
document.write("索引"+j+"、"+obj[j]+"<br>");
}
document.write("<font color='red'>for in用法举例--对象</font><br>");
var obj2={"name":"zl","age":"24","sex":"男"};
for(var j in obj2)
{
document.write("属性名:"+j+"------》值:"+obj2[j]+"<br>");
}
for...in 语句
对应于一个对象的每个,或一个数组的每个元素,执行一个或多个语句。
for (variable in [object | array])
2:参数
variable
必选项。一个变量,它可以是 object 的任一属性或 array 的任一元素。
object, array
可选项。要在其上遍历的对象或数组。
3:说明
在循环的每次迭代前,variable 被赋予 object 的下一个属性或 array 的下一个元素。然后可以在循环内的任一语句中使用它,就好像正在使用 object 的该属性或 array 的该元素一样。
当在一个对象上迭代时,没有办法决定或控制把对象的成员赋给 variable 的次序。在数组内将按元素的次序执行迭代,也就是,0、1、2、......
4:示例
document.write("<font color='red'>for in用法举例--数组</font><br>");
var obj=["zhao","liang","zl","an"];
for(var j in obj)
{
document.write("索引"+j+"、"+obj[j]+"<br>");
}
document.write("<font color='red'>for in用法举例--对象</font><br>");
var obj2={"name":"zl","age":"24","sex":"男"};
for(var j in obj2)
{
document.write("属性名:"+j+"------》值:"+obj2[j]+"<br>");
}
展开全部
x in mycars 就代表x是 mycars数组的下标了 ,你更改x的值除非是在for里面 输出之前改变x的值,然后输出的值才会改变,在外面定义的x在for里面 相当于 已经被重新赋值了,如果你之前没有定义过x,也就是说 你将 var x = 2;这句话注释,程序还是可以运行,在for运行之前,并且程序会自动的声明了一个x,x的值就是 mycars的下标
追问
那我这个x的值在经历for in之后数值是之前赋值的var x=2;还是for in 中最后运行到得x=5呢?
追答
你这句话我有点看不懂,但是你应该是问x的值,x的值已经被for In 给改变了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for in 一般用于你不知道该数组或者JSON中包含哪些元素,而进行遍历。
例如有一个元素未知的JSON对象:
var clnums = {a:1,b:2,...};
for(key in clnums){
document.write(clnums[key]);
}
例如有一个元素未知的JSON对象:
var clnums = {a:1,b:2,...};
for(key in clnums){
document.write(clnums[key]);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for in 就是将数组中的数据一个一个的付给x,此时x是新的变量
如果不想顺序输出 最好还是用for(var i=x;i<mycars.length;i++)
如果不想顺序输出 最好还是用for(var i=x;i<mycars.length;i++)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for 循环的x 被循环机制重新赋值了,每循环一次付一次值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询