1.while 循环
while语句属于前测试循环语句,在循环体内的代码被执行之前,就会对出口条件求值。因此循环体内代码有可能永远不会被执行。
例1:
var i = 0;
while ( i < 10 )
{
i+=2;
}
2.do-while循环
do-while 语句是后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件。换句话说,在对条件表达式求值之前,循环体内的代码至少被执行一次。
例2:
var i = 0;
do {
i+=2;
}while( i < 10 );
alert(i);
3.for循环
for循环是一种前测试循环语句,但它具有在执行循环之前初始化变量和定义循环后要执行的代码的能力。
例3:
var count =10;
for(var i=0;i<count;i++){
alert(i);
}
4.break 和continue语句
1>break语句会立即退出循环,强制继续执行循环后面的语句。
2>continue语句虽然也是立即退出循环,但退出循环后会从循环的顶部继续执行。
例4:
var num = 0;
for(var i=1; i<10;i++){
if(i%5==0){
break;
}
num++;
}
alert(num);
//4
例5:
var num = 0;
for(var i=1; i<10;i++){
if(i%5==0){
continue;
}
num++;
}
alert(num);
//8
5.for ...of 循环
数组原生具备iterator
接口(即默认部署了Symbol.iterator
属性),for...of
循环本质上就是调用这个接口产生的遍历器,可以用下面的代码证明。
例6:
const arr = ['red', 'green', 'blue']; for(let v of arr) { console.log(v); // red green blue } const obj = {}; obj[Symbol.iterator] = arr[Symbol.iterator].bind(arr); for(let v of obj) { console.log(v); // red green blue }
6.for... in 循环
for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作
例7:
JavaScript 原有的for...in
循环,只能获得对象的键名,不能直接获取键值
var arr = ['a', 'b', 'c', 'd']; for (let a in arr) { console.log(a); // 0 1 2 3 }
例8
Object.prototype.bar = 10;// 修改Object.prototype
var obj={"name":"wjy","age":26,"sex":"female"};//定义一个object对象
var keys=[];//定义一个数组用来接受key
var values=[];//定义一个数组用来接受value
for(var key in obj){
keys.push(key);
values.push(obj[key]);//取得value
}
alert("keys is :"+keys+" and values is :"+values);
7.map
1.每一次执行匿名函数都支持3个参数,(item,index,input)item:当前项,index:当前项的索引,input:原始数组
例子
var ary = [12,23,24,42,1]; | |
var res = ary.map(function (item,index,input) { | |
return item*10; | |
}) | |
console.log(res);//-->[120,230,240,420,10]; 原数组拷贝了一份,并进行了修改 | |
console.log(ary);//-->[12,23,24,42,1]; 原数组并未发生变化 |
8.forEach
无法中途跳出forEach
循环,break
命令或return
命令都不能奏效。
例9:遍历数组
myArray.forEach(function (value) { console.log(value); });
等同于
for (var index = 0; index < myArray.length; index++) { console.log(myArray[index]); }
例10:遍历对象
var obj = {'0':'a','1':'b','2':'c'};
Object.keys(obj).forEach(function(key){
console.log(key,obj[key]);
});