1、continue语句(用在循环体中,停止当前循环的执行,执行下一个循环,)
嵌套循环中可用continue+标签名,指定执行
for(var i=0;i<10;i++){
;
if(i==4) continue; //继续执行下一次迭代
}
以下将会成为死循环
var i=0;
while(i<10){
;
if(i==4) continue; //等于4时将变成死循环
}
eg:用continue过滤数组中的字符串元素
var a=[1,'d',2,'b',3,'c',4,'d']
var b=[],j=0;
for(var i in a){
if(typeof a[i] == 'string'){
//如果元素数据类型为字符串,则返回继续下一次迭代
continue;
//将非字符串类型的元素赋值给数组
b[j++]=a[i]
}
}
//1,2,3,4
2、提升条件检测的性能
使用switch语句检测值的方法比较笨重。可将所有可能值存储在数组中,然后通过下标快速检测到元素
如果条件查询中健名不是有序数组,则无法与数组下标映射,这时可以使用对象成员查询
3、提升循环运算性能
主要从性能角度考虑
1、压缩做什么
2、降低迭代次数
一个数组处理循环可采用三种(for、while、do while)
for循环中把数组长度给缓存起来,把变量与缓存数组长度进行比较,减省读取数组的开销
js中倒叙循环可略微提高循环性能
eg:for(var i=items.length;i--){
process(items[i])
}
4、设计杨辉三角
//设计算法
function c(x,y){ //求指定行和列的数字,x:行数,y:列数
if((y==1)||(y==x+1)) return 1; //若是第一列或最后一列,则取值为1
return c(x-1,y-1)+c(x-1,y) //通过递增算法求指定行和列的值,x-1表示上一行,
//返回上一行中第y-1列与第y列值之和
}
//设计输出函数
function print(v){
if(typeof v == 'number'){
var w=40;
if(n>30){
w=(n-30)+40;
}
var s=''
+v+"">'
document.write(s)
}
else{
document.write(v)
}
}
var n=prompt('请输入幂数:',9);
n=n-0;
var t1=new Date()
var a1=[1,1],a2=[1,1]
print('
');
for(var i =1;i //遍历幂数
for(var j=0;j //遍历每一列
print(c(i,j)) //调用求值函数,输出每一个数字
}
print("
") //换行
}
print("
&#