zoukankan      html  css  js  c++  java
  • js的学习 (语句)

    1.for/in

    语法如下:

    for(variable in object)

      statement

    variable通常是一个变量名,也可以是一个可以产生左值的表达式或者一个通过var语句声明的变量,总之必须是一个适用于赋值表达式左侧的值。object是一个表达式,这个表达式的计算结果是一个对象。

    执行for in语句的过程中,JS会先计算object表达式的值。

    如果object是一个对象,JS会依次枚举对象的属性来执行循环。在每次循环之前,JS会先计算variable表达式的值,并将属性名(一个字符串)赋值给它。

    如果表达式为null或者undefined,JS解释器会跳过循环并执行后续的代码。

    variable的值可以当做赋值表达式的左值,它可以是任意表达式,每次循环都会计算这个表达式。例如,可以使用下面这段代码将所有对象的属性复制到一个数组中。

    1 var p = {x:1, y:2, z:3};
    2 var a = [], i = 0;
    3 for(a[i++] in p); <!-- empty -->
    4 for(i in a)
    5     console.log(i,a[i])

    2.标签语句

    语句是可以添加标签的,标签是由语句前的标识符和冒号组成:

    identifier:statement

    mainloop:while(token!=null){

      continue mainloop;//跳转到下一次循环

    }

    通过给语句定义标签,就可以在程序的任何地方通过标签名引用这条语句。

    break和continue是JavaScript中唯一可以使用语句标签的语句。

    任何语句可以有很多个标签。

    3.try/catch

    在没有catch从句的情况下,try从句可以和finally从句一起使用。

    我们无法完全精确地使用while循环来模拟for循环,因为continue语句在两个循环中的行为表现不一致。如果使用try/finally语句,就能使用while循环来正确模拟包含continue的for循环。

    1 //模拟for(initialize;test;increment)body;
    2 initialize;
    3 while(test){
    4     try{body;}
    5     finally{increment;}     
    6 }

    需要注意的是,当body包含break语句时,while循环和for循环便有了更微妙的区别(造成了一次额外的自增运算)。

    4.with语句

    with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性。要给对象创建新的属性,必须明确地引用该对象。

    语法格式  
    with(object instance)  
    {  
            //代码块  
    }  
           有时候,我在一个程序代码中,多次需要使用某对象的属性或方法,照以前的写法,都是通过:对象.属性或者对象.方法这样的方式来分别获得该对象的属性和方法,着实有点麻烦,学习了with语句后,可以通过类似如下的方式来实现:  
    with(objInstance)  
    {  
           var str = 属性1;  
    .....  
    } 去除了多次写对象名的麻烦。

     1 <script language="javascript">  
     2 <!--  
     3 function Lakers() {  
     4        this.name = "kobe bryant";  
     5        this.age = "28";  
     6        this.gender = "boy";  
     7 }  
     8 var people=new Lakers();  
     9 with(people)  
    10 {  
    11        var str = "姓名: " + name + "<br>";  
    12        str += "年龄:" + age + "<br>";  
    13        str += "性别:" + gender;  
    14        document.write(str);  
    15 }  
    16 //-->  
    17 </script>  

    代码执行效果如下:  
    姓名: kobe bryant  
    年龄:28  
    性别:boy

  • 相关阅读:
    JVM 综述
    看 Netty 在 Dubbo 中如何应用
    Netty 心跳服务之 IdleStateHandler 源码分析
    Netty 高性能之道
    Netty 解码器抽象父类 ByteToMessageDecoder 源码解析
    Netty 源码剖析之 unSafe.write 方法
    Netty 出站缓冲区 ChannelOutboundBuffer 源码解析(isWritable 属性的重要性)
    Netty 源码剖析之 unSafe.read 方法
    Netty 内存回收之 noCleaner 策略
    Netty 源码阅读的思考------耗时业务到底该如何处理
  • 原文地址:https://www.cnblogs.com/fjl-vxee/p/6817917.html
Copyright © 2011-2022 走看看