网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 深入理解ECMAScript的几个关键语句
内容
    下面小编就为大家带来一篇深入理解ECMAScript的几个关键语句。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。
    写在前面
    在这一章中我们聊一聊ECMAScript中的几个关键语句switch、for-in、label等语句,加深我们对它们的理解和认识。首先从最常见的说起。
    while和for
    while和for是很常规的语句,无论是在JavaScript还是C还是其他编程语言中。而且在编程中我们较常用的也是for,for用起来更灵活,更简单,所以有些人可能就会产生这样一种误解:
    for比while更强大,能做到while做不到的一些事情。
    其实我们稍微想想while和for语句的语法应用,我们就会发现:
    while循环做不到的for循环也做不到。
    这是因为for循环只是把while循环有关的代码集中在了一起而已,其实有些时候,用while循环比用for循环更简单。这也是各司其职各有利弊吧。
    关于循环的另一点,我们先看一段代码:
    for(i=0;i<5;i++){
      console.log(i);
    }
    console.log(i);
    在循环外打印i,打印输出是5。
    可以看到,在循环内部定义的变量在外部也是可以访问的。在一些语言中比如C,大括号定义的是块级作用域,但是在ECMAScript中是没有块级作用域这个概念的,所以在循环内部定义的变量在外部也是可以访问的。
    switch语句
    在其他编程语言中比如C,switch语句只能使用数字,而在ECMAScript中,switch语句可以使用任何数据类型,像字符串、对象都是可以的。
    这里有一点需要说明:switch语句比较的时候使用的全等操作符,即===,所以'10'和10不相等,因为在进行全等比较的时候,并不发生类型转换。
    for-in语句
    for-in语句是一种精确性的迭代语句,可以用来遍历对象的属性,当然也可以迭代数组的属性。下面分别以例子说明:
    for-in遍历对象
    •window
    先遍历一个特殊的对象window:
    for(var i in window){
      console.log(i);
    }
    会打印出一串很长很长的属性列表,大家可自行查看,在此不一一罗列赘述。
    •自定义对象
    遍历自定义对象
    var o={prop1:'value1', prop2:'value2', prop3:'value3'};
    for (var i in o){
      console.log(i);
    }
    打印出prop1 prop2 prop3。
    •数组
    遍历数组
    var array1=[1,2,3,4];
    for(var i in array){
      console.log(i);
    }
    打印输出1 2 3 4。
    with语句
    with语句可以用来限制作用域,即可以将代码的作用域设置到一个特定的对象中。如下:
    var hostname=location.hostname;
    var url=location.href;
    这两句分别获取hostname和url,因为它们共用location(同一个对象下的属性),所以我们可以将作用域限定在location中,即用with语句关联location对象。如下:
    with(location){
       
      var hostname=hostname;
      var url=href;
    }
    需要注意的是:严格模式下使用with语句会有语法错误,同时,大量使用with语句会导致性能下降,同时也会给调试带来一定的困难,所以在开发应用程序的时候,尤其是开发大型应用程序的时候,并不建议使用with语句。
    label语句
    label语句用来在代码中加标签,从而可以在以后来使用它。一般情况下,加标签的语句要和for循环等循环语句配合来使用。
    它的语法是:
    label: statement
    下面给出代码详细来看看label标签的用法。
    1、先给出一段基本的代码:
    var num=0;
    for(var i=0;i<10;i++){
      for(var j=0;j<10;j++){
        if(i==5&&j==5){
          break;
        }
        num++;
      }
    }
    console.log(num);
    说明:break跳出了处在内部的for循环,j剩下的5次循环不再执行,所以打印的结果是95。
    2、接下来我们将break换成continue:
    var num=0;
    for(var i=0;i<10;i++){
      for(var j=0;j<10;j++){
        if(i==5&&j==5){
          break;
        }
        num++;
      }
    }
    console.log(num);
    说明:continue跳出了本次循环,就是说跳出了处在内部for循环的这一次循环,所以打印的结果是99。
    3、接下来我们加上一个名为outer的label标签再分别看打印结果:
    var num=0;
    outer:
    for(var i=0;i<10;i++){
      for(var j=0;j<10;j++){
        if(i==5&&j==5){
          break outer;
        }
        num++;
      }
    }
    console.log(num);
    说明:加上了标签以后,用break跳到了标签outer处,就是说程序跳出了外循环,即程序执行到了i=5且j=5时停止执行,所以打印的结果是55。
    4、我们再换成continue看看:
    var num=0;
    outer:
    for(var i=0;i<10;i++){
      for(var j=0;j<10;j++){
        if(i==5&&j==5){
          continue outer;
        }
        num++;
      }
    }
    console.log(num);
    说明:这一次用的是continue,所以当程序执行到i=5且j=5时并没有跳出外循环,而只是跳出了内循环,即剩下的5次不予执行,所以打印的结果是95。
    放在一起这几个显得稍微有些混淆,多理解理解就会好很多。
    小结
    我们学习一门东西不是为学而学,是为用而学,说白了就是为了工作而学,所以单纯理解上面的东西不是最重要的,不是为记而记,是为用而记,能够熟练运用在实践中才是我们希望的。同时,做笔记是一个很好的习惯,好记性不如烂笔头,如果你在做,那么希望你坚持下去。
    以上这篇深入理解ECMAScript的几个关键语句就是小编分享给大家的全部内容了,希望能给大家一个参考
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/19 19:27:05