Javascript中的语句

任何复杂的程序逻辑都可以通过“顺序”,“分支”,“循环”三种基本的程序结构实现。

分支语句:

if分支语句:

 if(表达式){
       表达式为true时执行内容;
 }
if(表达式){
      表达式为true时执行内容;
}else{
    表达式为false时执行内容;
}
var usename=””;
If(usensme==””){
        alert(“请输入用户名”);
}else{
       alert(“欢迎您”+usensme);
}
if(表达式1){
        表达式1为true时执行内容;
}else if(表达式2){
         表达式2为true时执行内容;
}else{
        这个else可有可无,上述条件都不满足时执行这个else。
}

switch-case分支语句:

 switch(表达式){
       case 判断1:执行结果1;break;
       case 判断2:执行结果2;break;
        ……
      default:执行结果;
}
var username=”tom”;
switch(username){
        case “tom”:alert(“老虎”);break;
         case “mary”:alert(“狮子”);break;
        default:alert(“没有匹配到值”);
}
switch(i){
       //合并两种情形
        case 25:
        case 35:
        alert(“25 or 35”);
        break;
        case 45:
        alert(“45”);
        break;
}

循环语句:

for循环语句:

 for(1初始值;2表达式;3步幅){
         4执行内容;
}

1—2(true)—4—3—2(true)—4—3—2……
1—2(true)—4—3—2(false)循环结束

var sum=0;
for(var i=1;i<=10;i++){
       Sum+=i;
}
alert(“总和为:”+sum);

将for语句中的初始值,表达式,步幅省略之后,就会创建一个无线循环.

for(,,){
    ...//无线循环
}

while循环语句:

1初始值;
while(2表达式){
      3执行内容;
      4步幅;
}

1—2(true)—3—4—2(true)—3—4……
1—2(false)直接中止循环
while循环是先判断再执行,所以可能一次都执行不了。

var sum=0;
var i=1;
while(i<=10){
   sum+=i;
    i++;
}
alert(“while总和为:”+sum);

do-while循环语句:

1初始值;
do{
    2执行内容;
     3步幅;
}while{
    4表达式;
}

1—2—3—4(true)—2—3—4(true)……
1—2—3—4(false)中止循环
do-while循环是先执行再判断,所以不管条件是否成立,至少能够执行一次。

var sum=0;
var i=1;
do{
      sum+=i;
      i++;
}while{
     i<=10;
}
alert(“do-while总和为:”+sum);

for-in语句:

6)是一种精准的迭代语句,用来枚举对象的属性.

ECMAScript对象的属性没有顺序,因此,返回的先后次序可能会因为浏览器而异.如果对象是null或undefined,将不执行循环体.

for(var property in window){
     document.write(property);
}

label语句:

7)使用label语句可以在代码中添加标签,以便将来由 break或continue引用.break和continue语句都可以与lebel语句联合使用,从而返回代码中特定的位置。用于嵌套循环,减少循环次数。

语法: label:statement;

start:for(var i=0;i<count;i++){
        alert(i);
}

break和continue语句:

8)break语句用于完全结束一个循环,跳出循 环体,开始执行循环之后的代码.continue只是中止本次循环,接着开始下一次循环.

break只能跳出一层循环.
break是跳出循环;return false是中止函数的执行;

for (i=0;i<5;i++) {
 if (i==3) break; 
}//输出0,1,2
 for (i=0;i<=5;i++) {
  if (i==3) continue; 
}//输出0,1,2,4,5
//结合label语句
var num = 0;  
for(var i = 0; i < 10; i++)  {  
    for(var j = 0; j < 10; j++)  {  
           if(i == 5 && j == 5)  {  
                break;                      
             }  
        num++;  
    }  
}  
 alert(num);//输出95;当i==5&&j==5时跳出j循环,继续执行i==6,j==0...的循环
//结合label语句
var num = 0;  
 outPoint:  
for(var i = 0; i < 10; i++)  {  
     for(var j = 0; j < 10; j++)  {  
           if(i == 5 && j == 5)  {  
                  break outPoint;  
          }  
         num++;  
       }  
 }  
alert(num);//输出55;当i==5&&j==5时跳出outPoint,也就是i循环
//之外,不再继续执行
//结合label语句
 var num = 0;  
for(var i = 0; i < 10; i++)  {  
     for(var j = 0; j < 10; j++)  {  
           if(i == 5 && j == 5)  {  
                 continue ;  
           }  
          num++;  
      }  
}  
alert(num);//输出99,只跳过i==5&&j==5
var num = 0;  
outPoint:  
for(var i = 0; i < 10; i++)  {  
      for(var j = 0; j < 10; j++)  {  
            if(i == 5 && j == 5)  {  
              continue outPoint;  
           }  
          num++;  
       }  
}  
alert(num);//输出95;当i==5&&j==5时跳出outPoint,也就是i循环之外,但再继续执行i==6&&j==0...

with语句:

引用对象,并对该对象上的属性进行操作,其作用是可以省略重复书写该对象名称,起到简化书写的作用。

大量使用with语句会导致性能下降,同时也会给调试代码造成困难.

var qs=location.search.substring(1);
var hostName=location.hostname;
var url=location.href;
 //使用with语句
with(location){
     var qs=search.substring(1);
     var hostName=hostname;
     var url=href;
}

try-catch语句:

把所有可能会抛出错误的代码都放在try语句块 中,而把那用于错误处理的代码放在catch块中.如果try块中的任何代码发了错误,就会立即退出代码执行过程,然后接着执行catch块,这时,catch块会接收到一个包含错误信息的对象。所有浏览器共同的保存着一个错误信息的message属性.

try {
        window.boxFunction(); //调用不存在的函数
} catch (error) {
       alert(error.message);
}

finally()子句:虽然在try-catch语句中finally子句是可选的,但finally子句一经使用,其代码无论如何都会执行。换句话说,try语句块中的代码全部正常执行,finally子句会执行;如果因为出错而执行了catch语句块,finally子句照样还会执行。只要代码中包含finally子句,则无论try或catch语句块中包含什么样的代码——甚至return语句,都不会阻止finally子句的执行。

function testFinally() {
   try {
       return 2;
   } catch (error) {
       return 1;
 } finally {
       return 0;
  }
}
testFinally(); //try和catch中的return语句被忽略,无论如何都会返回0

猜你喜欢

转载自blog.csdn.net/wsln_123456/article/details/84346278