js基础--javascript基础概念之语句(二)label,break,continue..
break 、 continue 语句。
break continue 语句用于在循环中精确控制代码的执行,其中break语句会立即退出循环,执行循环后面的语句。 continue 则退出循环后返回到再次进入循环中。
如:
var num = 0; for(var i = 0; i<=100; i++){ if(i >= 10){ break; } num = i; } alert(num);//num = 9;
循环体原本可以循环100 次。但是当i大于等于10的时候。使用break跳出了循环体。所有 num 不可能会等于10;最终只是等于9
如:
var num = 0; for(var i = 0; i<10;i++){ if(i == 6){ continue;//若果i 等于6 则回到循环体的顶部。 } num++; } alert(num);//9
最终num++ 少运行了一次,因为当i = 6 的时候。直接回到了循环顶端,没有去执行num++去了。
label 标签语句。
break continue 可以和label 语句联合使用,break 和 continue可以跳到某个label语句中去。
如:
var num = 0; labelName: for(var i = 0; i<=10; i++){ for(var k = 0; k<=10; k++){ if(k == 5 && i == 5){ break labelName;//当满足上面if条件以后 函数直接停止跳出到标签labelName 去了。 } num++; } } alert(num);//60
如果没有labelName 标签。结果应该是115;在k 中的for循环里。使用break 只是跳出k的这个for循环,使用break labelName 后是直接跳出到最外层的循环去。
var num = 0; labelName: for(var i = 0; i<=10; i++){ for(var k = 0; k<=10; k++){ if(k == 5 && i == 5){ continue labelName; } num++; } } alert(num);//115
当if条件满足后。返回到了最外层for循环的顶端。而不是var k 的循环。
with 语句(严格模式下禁用)
with语句的作用是将代码的作用域设置到一个对象中去。with 语法如下:
with(expression) statement; with(object instance) { //代码块 }
定义一个with语句的主要目的是为了简化多少编写同一个对象的工作。
var obj = { name:‘kin‘, age : ‘19‘, gender : ‘boy‘ }; with(obj){ document.write(‘姓名:‘+name+‘ 性别:‘+gender+‘年龄‘+age);//姓名:kin 性别:boy年龄19 }
没有使用with语句可以是这么写:
document.write(‘姓名:‘+obj.name+‘ 性别:‘+obj.gender+‘年龄‘+obj.age);//姓名:kin 性别:boy年龄19
但是由于大量使用with语句会导致性能下降,所以,不建议在大型的系统上面使用with语句...
Switch 语句
switch 语句 和 if语句关系密切。使用 switch 语句来选择要执行的多个代码块之一。
语法:
switch(expression){ case value1:statement1; break; case value2:statement2; break; case value3:statement3; break; case value4:statement4; break; }
switch 每一种情况(case)的含义是:如果表达式等于这个值(value) 则执行后面的语句,(statement).然后执行break关键字跳出语句。如果没有break关键字跳出 则执行完所有的case语句。
如:
var v = 20; switch(v){ case 19: alert(‘number is 19‘); break; case 20: alert(‘number is 20‘); break; case 21: alert(‘number is 21‘); break; }
上面switch语句等价于下面if语句:
var v = 20; if(v == 19 ){ alert(‘number is 19‘); }else if(v == 20){ alert(‘number is 20‘); }else if(v == 21){ alert(‘number is 21‘); }
显然 switch语句更简便加明了。
switch合并多种情况与一体。如:
var v = 20; switch(v){ case 19: case 20: alert(‘number is 19 or 20 ‘); break; case 21: alert(‘number is 21‘); break; }
在switch 语句中 可以使用多种数据类型。可以是变量 表达式。如:
var text = ‘this is text‘; switch(text){ case "this"+"is": alert(‘this is‘); break; case ‘this is‘+ ‘ text‘: alert(‘this is text‘); }
W3c 说明 switch:
语法
switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case 1 和 case 2 不同时执行的代码 }
工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。
实例
显示今日的周名称。请注意 Sunday=0, Monday=1, Tuesday=2, 等等:
var day=new Date().getDay(); switch (day) { case 0: x="Today it‘s Sunday"; break; case 1: x="Today it‘s Monday"; break; case 2: x="Today it‘s Tuesday"; break; case 3: x="Today it‘s Wednesday"; break; case 4: x="Today it‘s Thursday"; break; case 5: x="Today it‘s Friday"; break; case 6: x="Today it‘s Saturday"; break; }
x 的结果:
Today it‘s Monday