zoukankan      html  css  js  c++  java
  • Math对象、Date对象

    1. Math对象:专门封装数学计算相关属性和函数的全局对象

         属性:Math.PI

         函数:

           取整:

           Math.round(n)  Math.ceil(n)  Math.floor(n)

            四舍五入       上取整         下取整

            乘方开方:

            Math.pow(n,m):n的m次方

            Math.sqrt(n):对n开平方

            取大小:

            Math.max(n1,n2,n3...): 从参数中取最大值

            Math.min(n1,n2,...): 从参数中取最小值

           固定套路:获取数组中的最大值/最小值

            Math.max.apply(Math,arr);

    2. ***Date对象:

       封装了一个时间点的数据,提供了对时间的计算操作。

    *Date对象中封装的是一个从1970年1月1日0点0分至今的毫秒数*

       如何创建:4种:

        创建一个日期对象,自动封装当前时间

        var date=new Date();

        创建一个日期对象,并自定义时间点

        var date=new Date(年,月,日[,时,分,秒]);

        var date=new Date("yyyy/MM/dd[ hh:mm]");

        利用一个毫秒数创建时间对象

        vars date=new Date(ms);

       日期计算:1. 两日期对象相减,得到毫秒差

           日期计算的固定套路:3步

            1. 取出要计算的分量值: getXXX()

            2. 对分量值做+/-计算

            3. 将计算结果再set回去

          *所有set方法,都会直接修改原日期对象!*

        1. 能够取出每个分量的值

        2. 能够对每个分量做计算

       API:3句话:

         1. 命名:每个分量都有一对儿get/set方法

           比如:getMonth()  setMonth(n)

         2. 命名:年月日星期 不带s;时分秒 带s

           比如:getMonth()      getHours()

                    FullYear()      Minutes()

                    Date()          Seconds()

                    Day()

         3. 数值范围:只有date(每月中的日),从1开始-31结束

                      其余都是从0开始,到进制-1结束

            比如:day: 日 一 二 三... 六

                       0  1  2  3     6

                 month: 1月 2月 3月   ...    12月

                        0   1   2            11

                  hour: 0点 1点  2点    15点

                        0   1    2      15

                minute: 00                      59分

                        0                       59

            结论:只有month需要修正!

    日期类型输出为字符串:——了解

           date.toLocaleString(); //将date转为本地时间格式

            //将date转为本地时间格式,仅包含日期部分

            date.toLocaleDateString();

            //将date转为本地时间格式,仅包含时分秒部分

            date.toLocaleTimeString();

        *因为toLocale系列的方法不同浏览器输出不统一。

         都会自定义format函数,将日期转为用户希望的字符串*

    Number对象:toFixed方法:

        优:对任意小数位四舍五入

        缺:返回值是String类型,不能参与数字计算

    作业:function round(num,d){

              //将num按d位小数,四舍五入

            //返回四舍五入后的结果

          }

          console.log(round(123.456,2)); //123.46

    1. 错误处理:

         错误:程序执行过程中的异常情况,也成异常

         错误处理:当程序发生错误时,保证程序不中断的机制

        

         Error对象:当程序发生错误时,*自动*创建的对象

                    封装了错误的信息:错误的类别,错误的原因

         SyntaxError:语法错误——改代码 

         ReferenceError:引用错误——找不到指定的对象

         TypeError:类型错误——错误的使用了类型的方法

         RangeError:范围错误——参数超范围

         EvalError、URIError——少见,了解。

         如何错误处理:try catch finally

         try{

             可能发生错误的代码段

         }catch(err){一旦错误发生,err中就会获得错误对象

            提示或处理错误

         }[finally{

             无论出错与否,都必须执行的代码。

            比如:释放资源!

         }]

         鄙视题:见2_error中

         如何抛出自定义错误:throw new Error("异常信息");

    2. ***Function对象:

        总结:Everything is Object;函数也是引用类型的对象

     ***重载:真正的重载:tmooc/java/java面向对象/类中的方法

    现实中:一件事,参数不同,执行不同的步骤

    程序中:一组同名的方法,根据参数不同,调用不同的方法实现

    *虽然js中语法不支持重载!但可以通过arguments对象模拟*

        arguments对象:在方法中*自动创建*的,接受每个传入参数的类数组对象——Object like Array

        arguments.length:传入的参数个数

        arguments[i]:第i+1个参数的值

    1. 创建方法对象:3种:

         1种:function声明方式:function 方法名([参数列表]){

                                    方法体;

                                    return 返回值;

                                }

          比如:function compare(a,b){return a-b;}

    ****************************************************

         2种:用函数直接量方式创建函数对象

             var compare=function([参数列表]){

              方法体;

                    return 返回值;

              }

          比如:var compare=function(a,b){return a-b;}

         3种:使用new关键字创建方法对象:

              var compare=

          new Function("a","b",...,"方法体;return 返回值");

          比如:var compare=

                  new Function("a","b","return a-b;");

    2. ***匿名函数:定义时,未指定函数名称的函数

          何时使用匿名函数:如果一个函数仅临时使用一次!

          2种情况:1. 回调:函数不是立刻调用。而是传递给其它对象,由其它对象自动调用。

             比如:arr.sort(function(a,b){return a-b});

                         new Function("a","b","return a-b")

                   2. 自调:匿名函数,自己调用自己。

        优:节约内存空间:被解释到时动态创建,调用完自动释放

        缺:无法重复利用!

  • 相关阅读:
    随性
    PHP csv文件处理时中文转码
    content...
    macro
    docker Alpine 编译安装node.js的dockerfile文件
    docker hub登录不上一直卡的原因
    java接口与模式(观察者)
    java模式的一点感受
    编码原则之接口隔离
    如何获取web应用的部署路径(多种方式)
  • 原文地址:https://www.cnblogs.com/baiyanfeng/p/5042821.html
Copyright © 2011-2022 走看看