对于
试试看
设str=“”; for(设i=0;i<9;i++){ str+=i; } console.log(str); //预期输出:“012345678”
语法
for(初始化;条件;事后考虑) 陈述
初始化 可选 -
表达式(包括 赋值表达式 )或变量声明在循环开始之前计算一次。 通常用于初始化计数器变量。 此表达式可以选择使用 无功功率,无功功率 或 让 关键字。 用声明的变量 无功功率,无功功率 不是循环的局部,即它们在同一范围内 对于 循环在中。用声明的变量 让 对语句来说是局部的。 此表达式的结果将被丢弃。 条件 可选 -
在每次循环迭代之前要计算的表达式。 如果此表达式 计算为true , 陈述 执行。 如果表达式 计算为false ,执行将退出循环并转到 对于 构造。 此条件测试是可选的。 如果忽略,条件的计算结果始终为true。 事后思考 可选 -
在每次循环迭代结束时要计算的表达式。 这发生在下次评估之前 条件 。通常用于更新或增加计数器变量。 陈述
描述
示例
用于
for(设i=0;i<9;i++){ 控制台.log(i); //更多语句 }
初始化块语法
表达式可选
All three expressions in the head of the
设i=0; 对于(;i<9;i++){ 控制台.log(i); //更多语句 }
for(设i=0;;i++){ 控制台.log(i); 如果(i>3)断裂; //更多语句 }
设i=0; 用于(;;){ 如果(i>3)断裂; 控制台.log(i); i++; }
设i=0; 而(i<=3){ 控制台.log(i); i++; }
初始化块中的词汇声明
for(设i=0;i<3;i++){ setTimeout(()=>{ 控制台.log(i); }, 1000); }
设i=0; 对于(;i<3;i++){ setTimeout(()=>{ 控制台.log(i); }, 1000); }
对于(var i=0;i<3;i++){ setTimeout(()=>{ 控制台.log(i); }, 1000); } //日志3、3、3
使用new创建新的词法范围 让 -声明的变量。 上一次迭代的绑定值用于重新初始化新变量。 事后思考 在新范围内进行评估。
for(设i=0,getI=()=>i; i<3; i++){ console.log(getI()); } //日志0,0,0
for(设i=0,getI=()=>i; i<3; i++,获取i=()=>i){ console.log(getI()); } //日志0、1、2
for(设i=0,getI=()=>i; i<3; ) { i++; console.log(getI()); } //日志0,0,0
的( 设i=0,getI=()=>i,incrementI=(,)=>i++; 获取I()<3; 增量I() ) { 控制台.log(i); } //日志0,0,0
用于无实体
函数showOffsetPos(id){ 设left=0; 设top=0; 的( 让itNode=document.getElementById(id); //初始化 itNode; //条件 left+=itNode.offset左侧, top+=itNode.offset顶部, itNode=itNode.offsetParent//事后想到 );//分号 控制台.log( `“${id}”元素的偏移位置: 左图:$ {左}像素 ; 顶部:$ {top}像素 ;`, ); } showOffsetPos(“内容”); //日志: //“content”元素的偏移位置: //左:0px; //顶部:153px;
将for用于两个迭代变量
常数=[1,2,3,4,5,6]; for(设l=0,r=arr.length-1;l<r;l++,r--){ 控制台.log(arr[l],arr[r]); } // 1 6 // 2 5 // 3 4