Math對象、Date對象

1. Math對象:專門封裝數學計算相關屬性和函數的全局對象java

     屬性:Math.PI數組

     函數:瀏覽器

       取整:app

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

        四捨五入       上取整         下取整orm

        乘方開方:對象

        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. 自調:匿名函數,本身調用本身。

 

    優:節約內存空間:被解釋到時動態建立,調用完自動釋放

    缺:沒法重複利用!

相關文章
相關標籤/搜索