• JavaScript基础---语言基础(3)


    流程控制语句

    学习要点:

    1.switch语句

    2.for...in语句

    3.break和continue语句

    4.with语句

     

    ECMA-262规定了一组流程控制语句。语句定义了ECMAScript中的主要语法,语句通常由一个或者多个关键字来完成给定的任务。诸如:判断、循环、退出等。

     

    一.switch语句

    switch语句是多重条件判断,用于多个值相等的比较。

    var box = 1;

    switch (box) {                                           //用于判断box相等的多个值

           case 1 :

                  alert('one');

                  break;                                        //break;用于防止语句的穿透

           case 2 :

                  alert('two');

                  break;

           case 3 :

                  alert('three');

                  break;

     

           default :                                            //相当于if语句里的else,否则的意思

                  alert('error');

    }

     

    二.for...in语句

    for...in语句是一种精准的迭代语句,可以用来枚举对象的属性。

    var box = {                                               //创建一个对象

           'name' : '张三',                                //键值对,左边是属性名,右边是值

           'age' : 28,

           'height' : 178

    };

    for (var p in box) {                                    //列举出对象的所有属性

           alert(p);

    }

     

    三.break和continue语句

    break和continue语句用于在循环中精确地控制代码的执行。其中,break语句会立即退出循环,强制继续执行循环体后面的语句。而continue语句退出当前循环,继续后面的循环。

    for (var box = 1; box <= 10; box++) {

           if (box == 5) break;                                          //如果box是5,就退出循环

           document.write(box);

           document.write('<br />');

    }

     

    for (var box = 1; box <= 10; box++) {

           if (box == 5) continue;                              //如果box是5,就退出当前循环

           document.write(box);

           document.write('<br />');

    }

     

     四.with语句

    with语句的作用是将代码的作用域设置到一个特定的对象中。

    var box = {                                                     //创建一个对象

           'name' : '张三',                                        //键值对

           'age' : 28,

           'height' : 178

    };

     

    var n = box.name;                                            //从对象里取值赋给变量

    var a = box.age;

    var h = box.height;

     

    可以将上面的三段赋值操作改写成:

    with (box) {                                                    //省略了box对象名

           var n = name;

           var a = age;

           var h = height;

    }

     

     

     

    时间与日期

    学习要点:

    1.Date类型

    2.通用的方法

    3.格式化方法

    4.组件方法

     

    ECMAScript提供了Date类型来处理时间和日期。Date类型内置一系列获取和设置日期时间信息的方法。

     

    一.Date类型

    ECMAScript中的Date类型是在早期Java中java.util.Date类基础上构建的。为此,Date类型使用UTC (Coordinated Universal Time,国际协调时间[又称世界统一时间]) 1970年1月1日午夜(零时)开始经过的毫秒来保存日期。在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的285616年。

     

    创建一个日期对象,使用new运算符和Date构造方法(构造函数)即可。

    var box = new Date();                                //创建一个日期对象

     

    在调用Date构造方法而不传递参数的情况下,新建的对象自动获取当前的时间和日期。

    alert(box);                                                //不同浏览器显示不同

     

    ECMAScript提供了两个方法,Date.parse()和Date.UTC()

    Date.parse()方法接收一个表示日期的字符串参数(必须),然后尝试根据这个字符串返回相应的毫秒数ECMA-262没有定义Date.parse()应该支持哪种日期格式,因此方法的行为因实现而异,因地区而异。默认通常接收的日期格式如下:

    1.'月/日/年',如6/13/2011;

    2.'英文月名 日, 年',如 May 25, 2004;

    3.'英文星期几 英文月名 日 年 时:分:秒 时区',如 Tue May 25 2004 00:00:00 GMT-070

     

    alert(Date.parse('6/13/2011'));                     //1307894400000

     

    如果Date.parse()没有传入或者不是标准的日期格式,那么就会返回NaN。

    alert(Date.parse());                                    //NaN

     

    如果想输出指定的日期,那么把Date.parse()传入Date构造方法里。

    var box = new Date(Date.parse('6/13/2011'));     //Mon Jun 13 2011 00:00:00 GMT+0800

    var box = new Date('6/13/2011');                       //直接传入,Date.parse()后台被调用

     

    PS:Date对象及其在不同浏览器中的实现有许多奇怪的行为。其中有一种倾向是将超出的范围的值替换成当前的值,以便生成输出。例如,在解析“January 32, 2007”时,有的浏览器会将其解释为“February 1, 2007”。而Opera则倾向与插入当前月份的当前日期。

     

    Date.UTC()方法同样也返回表示日期的毫秒数,但它与Date.parse()在构建值时使用不同的信息。(年份,基于0的月份[0表示1月,1表示2月],月中的哪一天[1-31],小时数[0-23],分钟,秒以及毫秒)。只有前两个参数是必须的。如果没有提供月数,则天数为1;如果省略其他参数,则统统为0.

    alert(Date.UTC(2011,11));                          //1322697600000  

     

    如果Date.UTC()参数传递错误,那么就会出现负值或者NaN等非法信息。

    alert(Date.UTC());                                     //负值或者NaN

     

    如果要输出指定日期,那么直接把Date.UTC()传入Date构造方法里即可。

    var box = new Date(Date.UTC(2011,11, 5, 15, 13, 16));

     

     

    二.通用的方法

    与其他类型一样,Date类型也重写了toLocaleString()、toString()和valueOf()方法;但这些方法返回值与其他类型中的方法不同。

    var box = new Date(Date.UTC(2011,11, 5, 15, 13, 16));

    alert('toString:' + box.toString());                      

    alert('toLocaleString:' + box.toLocaleString());    //按本地格式输出

     

    PS:这两个方法在不同浏览器显示的效果又不一样,但不用担心,这两个方法只是在调试比较有用,在显示时间和日期上,没什么价值。valueOf()方法显示毫秒数。

     

     

    三.日期格式化方法

    Date类型还有一些专门用于将日期格式化为字符串的方法。

     

    var box = new Date();

    alert(box.toDateString());                           //以特定的格式显示星期几、月、日和年

    alert(box.toTimeString());                          //以特定的格式显示时、分、秒和时区

    alert(box.toLocaleDateString());                 //以特定地区格式显示星期几、月、日和年

    alert(box.toLocaleTimeString());                 //以特定地区格式显示时、分、秒和时区

    alert(box.toUTCString());                          //以特定的格式显示完整的UTC日期。

     

    四.组件方法
    组件方法,是为我们单独获取你想要的各种时间/日期而提供的方法。需要注意的时候,这些方法中,有带UTC的,有不带UTC的。UTC日期指的是在没有时区偏差的情况下的日期值。

    alert(box.getTime());                                    //获取日期的毫秒数,和valueOf()返回一致

    alert(box.setTime(100));                                    //以毫秒数设置日期,会改变整个日期

    alert(box.getFullYear());                                   //获取四位年份

    alert(box.setFullYear(2012));                            //设置四位年份,返回的是毫秒数

    alert(box.getMonth());                                     //获取月份,没指定月份,从0开始算起

    alert(box.setMonth(11));                                   //设置月份

    alert(box.getDate());                                  //获取日期

    alert(box.setDate(8));                                 //设置日期,返回毫秒数

    alert(box.getDay());                                   //返回星期几,0表示星期日,6表示星期六

    alert(box.setDay(2));                                 //设置星期几

    alert(box.getHours());                                //返回时

    alert(box.setHours(12));                             //设置时

    alert(box.getMinutes());                             //返回分钟

    alert(box.setMinutes(22));                          //设置分钟

    alert(box.getSeconds());                             //返回秒数

    alert(box.setSeconds(44));                          //设置秒数

    alert(box.getMilliseconds());                       //返回毫秒数

    alert(box.setMilliseconds());                       //设置毫秒数

    alert(box.getTimezoneOffset());                  //返回本地时间和UTC时间相差的分钟数

     

    PS:以上方法除了getTimezoneOffset(),其他都具有UTC功能,例如setDate()及getDate()获取星期几,那么就会有setUTCDate()及getUTCDate()。表示世界协调时间。    

     

    Thank you, Mr Lee!

    For my Lover !

  • 相关阅读:
    IDEA tomcat 乱码( Catalina log localhost log server )
    idea的maven项目无法加载resources下的配置或是xml文件
    【MyBatis系列10】MyBatis日志如何做到兼容所有常用的日志框架
    【MyBatis系列9】彻底搞懂MyBatis插件原理及PageHelper原理
    【MyBatis系列8】带你彻底掌握MyBatis的缓存工作原理
    【MyBatis系列7】原来SqlSession只是个甩手掌柜,真正干活的却是Executor等四大对象
    idea 热部署Devtools
    git branch 命令查看分支、删除远程分支、本地分支【转】
    【转】elasticsearch 基础知识汇总
    【转】Elasticsearch究竟要设置多少分片数?
  • 原文地址:https://www.cnblogs.com/ttcc/p/3839677.html
Copyright © 2020-2023  润新知