for循环
- for有三个表达式:①声明循环变量;②判断循环条件;③更新循环变量;三个表达式之间,用;分割,for循环三个表达式都可以省略,但是两个“;”缺一 不可。
- for循环的执行特点:先判断再执行,与while相同
- for循环三个表达式都可以有多部分组成,第二部分多个判断条件用&& ||连接,第一三部分用逗号分割
for(var num = 1;num<10;num++){
console.log(num);//1,2,3,4,5,6,7,8,9
}
while循环
while()循环会先判断,再执行,所以可能会一次都不执行
while循环()中的表达式,运算结果可以是各种类型,但是最终都会转为真假,转换规则如下:
- Boolean:true为真,false为假
- String:空字符串为假,所有非空字符串为真
- Number:0为假,一切非0数字为真
- null/Undefined/NaN:全为假
- Object:全为真
var num = 1;//1、声明循环变量,用let声明会报错(Uncaught SyntaxError: Identifier 'num' has already been declared)
while (num<10){//2、判断循环条件;
console.log(num);//3、执行循环体操作;
num++;//4、更新循环变量;
}
do-while循环
while循环特点:先判断后执行
do-while循环特点:先执行再判断,即使初始条件不成立,do-while循环至少执行一次,也就是说do-while循环比while循环多执行一次。
var num = 10;
do{
console.log(num);//10 9 8 7 6 5 4 3 2 1 0
num--;
}while(num>=0);
console.log(num);//-1
遍历方法
for - in
for - in语句用于对数组或者对象的属性进行循环操作。
for - in循环中的代码每执行一次,就会对数组或者对象的属性进行一次操作。
// Object
let obj={'name':'programmer','age':'22','height':'180'};
for(let i in obj){
console.log(i + ": " + obj[i]) //name: programmer age: 22 height: 180
}
Array
let arr = ["qqq", "aaa", "zzz"]
for(let item in arr){
console.log(item + ": " + arr[item]) //0: qqq 1: aaa 2: zzz
}
for - in
对于对象,会遍历对象的key,对于数组,会遍历数组的索引
但是 不建议使用 for - in
语句来循环数组的索引,你可以使用 for
语句替代。
for - of
for...of
循环可以使用的范围包括数组、Set 和 Map 结构、某些类似数组的对象(比如arguments对象、DOM NodeList 对象)、后文的 Generator 对象,以及字符串。
JavaScript 原有的for-in
循环,只能获得对象的键名,不能直接获取键值。ES6 提供for...of
循环,允许遍历获得键值
// 数组
var arr = ['a', 'b', 'c', 'd'];
for (let item in arr) {
console.log(item); // 0 1 2 3
}
for (let item of arr) {
console.log(item); // a b c d
}
// 字符串
let str = "hello";
for (let s of str) {
console.log(s); // h e l l o
}
// arguments对象
function printArgs() {
for (let x of arguments) {
console.log(x);
}
}
printArgs('a', 'b');// 'a' 'b'
网友评论