for-in循环和for-of循环区别
for-in语句用于遍历对象,而for-of语句用于遍历数组,但这不是必须的,只是这样操作比较方便。
遍历数组
For-in循环
var arr=[1,2,3,4,5,6,7] //申明一个数组
for(var x in arr){
document.write("arr["+x+"]="+arr[x] + " "); //x为数组的下标
}
执行结果
For-of循环
var arr=[1,2,3,4,5,6,7] //声明一个纯数字数组
for(var value of arr){
document.write(value + " ");//value为数组的元素,比For-in访问数组操作简单
}
var arr1=['aaa','bbb','ccc'] //声明一个字符串数组
for(var value of arr1){
document.write("<br>")
document.write(value + " ");
}
执行结果
遍历对象
For-in循环
var obj={name:'lilin',age:24,sex:'man'} //申明一个对象
for(var x in obj){
document.write(x+"="+obj[x] + " ");//x为对象属性名,obj[x]为该属性的值
}
For-of循环
var obj={name:'lilin',age:24,sex:'man'} //申明一个对象
for(var x of Object.keys(obj)){
document.write(x+"="+obj[x]+" ");//x为对象属性名,obj[x]为该属性的值
}
执行结果
注意
for-in和for-of遍历对象时,实质是遍历对象的数组形式,访问对象的属性值时必须使用“对象名[属性名]”的格式。
这里对最后一个循环做下验证
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
var obj = {
name: 'lilin',
age: 24,
sex: 'man'
} //申明一个对象
for(var x of Object.keys(obj)) {
document.write(x + "=" + obj[x] + ","); //x为对象属性名,obj[x]为该属性的值
console.log(x + "=", obj[x]);
}
</script>
</head>
<body>
</body>
</html>
效果如下
参考:https://blog.csdn.net/weixin_37858031/article/details/89574471