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. 自调:匿名函数,自己调用自己。

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

    缺:无法重复利用!

原文地址:https://www.cnblogs.com/baiyanfeng/p/5042821.html