1whilevar num = 1//1、声明循环变量while (num<=10){//2、判断循环条件 document.write(num+"<br />")//3、执行循环体操作;num++//4、更新循环变量;} while循环()中的表达式,运算结果可以是各种类型,但是最终都会转为真假,转换规则如下。①Boolean:true为真,false为假;②String:空字符串为假,所有非空字符串为真;③Number:0为假,一切非0数字为真;④null/Undefined/NaN:全为假;⑤Object:全为真。2do-while循环while循环特点:先判断后执行;do-while循环特点:先执行再判断,即使初始条件不成立,do-while循环至少执行一次;var num = 10 do{document.write(num+"<br />")//10 9 8 7 6 5 4 3 2 1 0num-- }while(num>=0) document.write(num)//-13,for循环for (var num =1num<=10num++) {document.write(num+" <br />")//1 2 3 4 5 6 7 8 9 10 }4for-in循环 var arr = ['a', 'b', 'c', 'd'] for (let a in arr) {console.log(a)// 0 1 2 3}for (let a of arr) {console.log(a)// a b c d}JQ循环有$.each和$.map('div').each(function (i){ i就是索引值 this 表示获取遍历每一个dom对象})for的效率比for in高
for in需要调用js的Iterator对对象的属性进行枚举,然后再执行循环
for的是直接通过index索引到object的指针
是的
for(variable in object)
object为null、undefined,javascript会跳过循环执行后面的代码,在ECMAScript3中可能会抛出类型错误异常
object为原始值,会转换为与之对应的包装对象
若为对象类型,javascript会依次枚举对象的属性来执行循环,在每次循环前,javascript都会先计算variable表达式的值,并将属性名(一个字符串)赋值给它
例子
var obj = {type:'human',history:'300000years',use:'example'}
var arr2 = [],i=0
for(arr2[i++] in obj) /*empty*/
console.log(arr2) //["type","history","use"]