JavaScript原生對(duì)象常用方法總結(jié)(推薦)

字號(hào):


    下面小編就為大家?guī)?lái)一篇JavaScript原生對(duì)象常用方法總結(jié)(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。
    下面都是我學(xué)習(xí)W3C School教程中有關(guān)JavaScript寫(xiě)的學(xué)習(xí)筆記,每個(gè)方法我都親身測(cè)試過(guò),每個(gè)方法的用途和參數(shù)列表,我都是在經(jīng)過(guò)我親身實(shí)踐后加上了我自己的一點(diǎn)理解,解釋的還算比較詳細(xì)。現(xiàn)記錄下來(lái),以便查閱:
    javascript之Array類(lèi):
    創(chuàng)建js數(shù)組兩種方式:
    var arr = [];  或
    var arr = new Array();
    ()里可以指定長(zhǎng)度,也可以不指定,指不指定都無(wú)所謂,
    因?yàn)閖s里的數(shù)組長(zhǎng)度是可變的
    concat(arr1,arr2,arr3......arrx):js數(shù)組合并,返回合并后的新數(shù)組,至少需要傳遞一個(gè)數(shù)組,也可以傳遞多個(gè)數(shù)組
    var arr1 = new Array(3); 
    arr1[0] = "George"; 
    arr1[1] = "John"; 
    arr1[2] = "Thomas"; 
    arr1[3] = "Jeery"; 
    var arr2 = new Array(3); 
    arr2[0] = "James"; 
    arr2[1] = "Adrew"; 
    arr2[2] = "Martin"; 
    var arr3 = new Array(3); 
    arr3[0] = "Java"; 
    arr3[1] = "C#"; 
    arr3[2] = "PHP"; 
    var arr4 = arr1.concat(arr2,arr3); 
    alert(arr4); 
     join(): 將數(shù)組元素按指定的分隔符拼接成一字符串返回,默認(rèn)分隔符為英文逗號(hào)
    var arr = new Array(3) 
    arr[0] = "George"; 
    arr[1] = "John"; 
    arr[2] = "Thomas"; 
    arr[3] = "Jeery"; 
    arr.join("."); 
    sort(fn): 數(shù)組排序,默認(rèn)是按英文字母的ASC碼升序排列,比如apple排在orange前面,其實(shí)
    sort還可以接收一個(gè)參數(shù),該參數(shù)function類(lèi)型,有點(diǎn)類(lèi)似于java里的比較器的意思,
    就是說(shuō)如果不想按默認(rèn)的比較規(guī)則來(lái)排序,就必須提供一比較函數(shù),該函數(shù)有兩個(gè)參數(shù)a、b,
    如果返回值小于0,則a排在b前面
    如果返回值大于0,則b排在a前面
    如果返回值等于0,則a、b位置不變
    var arr = new Array(6); 
    arr[0] = 5; 
    arr[1] = 23; 
    arr[2] = 4; 
    arr[3] = 18; 
    arr[4] = 88; 
    arr[5] = 10; 
    arr.sort(sortNumber); 
    function sortNumber(a, b) 
    { 
    return a - b; 
    } 
    pop():刪除數(shù)組的最后一個(gè)元素,把數(shù)組長(zhǎng)度減 1,并且返回它刪除的元素的值。
    如果數(shù)組已經(jīng)為空,則 pop() 不改變數(shù)組,并返回 undefined 值。
    var arr = new Array(6); 
    arr[0] = 5; 
    arr[1] = 23; 
    arr[2] = 4; 
    arr[3] = 18; 
    arr[4] = 88; 
    arr[5] = 10; 
    var a = arr.pop(); 
    alert(a); 
    for(var x in arr){ 
    alert(arr[x]); 
    } 
    push(n1,n2,n3,....nx):向數(shù)組末尾添加一個(gè)或多個(gè)元素,并返回添加后數(shù)組的長(zhǎng)度,
    注意,此方法操作的是原數(shù)組對(duì)象,不會(huì)創(chuàng)建副本。此方法可以接收多個(gè)參數(shù),
    至少要傳遞一個(gè)參數(shù)
    var arr = new Array(6); 
    arr[0] = 5; 
    arr[1] = 23; 
    arr[2] = 4; 
    arr[3] = 18; 
    arr[4] = 88; 
    arr[5] = 10; 
    var len = arr.push(44,80); 
    alert(len); 
    for(var x in arr){ 
    alert(arr[x]); 
    } 
    reverse(): 顛倒數(shù)組中元素的順序,即如果原來(lái)數(shù)組元素是1,2,3,4,5,調(diào)用reverse()后,
    元素順序?yàn)?,4,3,2,1,注意,此方法直接操作的是原數(shù)組對(duì)象,不會(huì)創(chuàng)建副本。
    var arr = [3,5,11,6,90,0]; 
    arr.reverse(); 
    for(var x in arr){ 
    alert(arr[x]); 
    } 
    shift(): 刪除數(shù)組的第一個(gè)元素,并返回它刪除的那個(gè)元素
    如果數(shù)組已經(jīng)為空,則 shift() 不改變數(shù)組,并返回 undefined 值
    注意,此方法直接操作的是原數(shù)組,不會(huì)創(chuàng)建副本對(duì)象
    var arr = [3,5,11,6,90,0]; 
    var a = arr.shift(); 
    alert(a); 
    for(var x in arr){ 
    alert(arr[x]); 
    }
    slice(start,end): 用于截取start和end之間的數(shù)組元素并存入新數(shù)組返回
    注意,此方法不會(huì)修改原數(shù)組,會(huì)創(chuàng)建數(shù)組副本對(duì)象。
    如果end未指定,則表示直接從start直到數(shù)組末尾,
    如果start或end為負(fù)數(shù),表示從后面開(kāi)始算起,比如
    -1,表示從倒數(shù)第一個(gè)元素算起,以此類(lèi)推。
    截取的區(qū)間范圍是[start,end),前閉后開(kāi)區(qū)間,且start必須小于end
    如果沒(méi)找到一個(gè)元素,則返回一個(gè)空數(shù)組即數(shù)組的長(zhǎng)度為0
    var arr = [3,5,11,6,90,0]; 
    var a = arr.slice(2,4); 
    alert(a.join()); 
    splice(index,howmany,element1,.....,elementX): 
    用于刪除從 index 處開(kāi)始的零個(gè)或多個(gè)元素,并且用參數(shù)列表中聲明的一個(gè)或
    多個(gè)值來(lái)替換那些被刪除的元素,并返回剛剛刪除的元素組成的新數(shù)組。
    注意:此方法是直接操作的原數(shù)組對(duì)象,不會(huì)創(chuàng)建對(duì)象副本
    第一個(gè)參數(shù):表示從index位置開(kāi)始刪除,index從零開(kāi)始計(jì)算
    第二個(gè)參數(shù):表示從index位置開(kāi)始,往后連續(xù)刪除幾個(gè)元素,前兩個(gè)參數(shù)是必需的,后面的參數(shù)是可選的。
    后面的參數(shù)是用添加的元素,添加的元素從index處開(kāi)始添加,如果后面添加的元素個(gè)數(shù)大于
    實(shí)際刪除的元素個(gè)數(shù),多出幾個(gè),后面的元素就往后移動(dòng)幾位。比如你實(shí)際刪除了4個(gè)元素,
    而實(shí)際你后面添加了6個(gè)元素,那最終會(huì)從index處開(kāi)始添加6個(gè)元素,由于前面只刪除4個(gè)元素,
    位置不夠,所以后面的元素會(huì)自動(dòng)往后移動(dòng)2位。
    var arr = [3,5,11,6,90,0,15,57,70,20]; 
    var a = arr.splice(0,4,1,2,3,4,5,6); 
    alert(a); 
    for(var x in arr){ 
    alert(arr[x]); 
    } 
    unshift(element1,.....,element):
    向數(shù)組開(kāi)頭添加一個(gè)或多個(gè)元素,并返回添加后的數(shù)組長(zhǎng)度。至少要傳一個(gè)參數(shù)。
    注意此方法是直接操作原數(shù)組,最后添加的元素index=0,以此類(lèi)推。
    var arr = [3,5,11,6,90,0,15,57,70,20]; 
    arr.unshift(22,23,24); 
    alert(arr.toString()); 
    alert(arr.length); 
    擴(kuò)展Array的函數(shù):
    Array.prototype.indexOf = function(o){ 
    for(var i = 0,len=this.length; i<len;i++){ 
    if(this[i] == o){ 
    return i; 
    } 
    } 
    return -1; 
    } 
    Array.prototype.remove = function(o){ 
    var index = this.indexOf(o); 
    if(index != -1){ 
    this.splice(index,1); 
    } 
    return this; 
    } 
    var arr = [3,5,11,6,90,0,15,57,70,20]; 
    arr.remove(90); 
    alert(arr.toString()); 
    alert(arr.length); 
    js中Number類(lèi)常用方法:
    toFixed(): 將數(shù)字四舍五入為指定小數(shù)位數(shù)的數(shù)字,參數(shù)值范圍為[0,20],表示四舍五入后保留的小數(shù)位數(shù),
    如果沒(méi)有傳入?yún)?shù),默認(rèn)參數(shù)值等于0
    var num = 12.5563; 
    alert(num.toFixed()); 
    alert(num.toFixed(2)); 
    toprecision(): 用于將數(shù)字精確到指定長(zhǎng)度,方法接收參數(shù)一個(gè)參數(shù),參數(shù)的范圍為[0,21]
    參數(shù)表示數(shù)字的位數(shù),如果數(shù)字總位數(shù)大于參數(shù)值且數(shù)字是小數(shù),那么會(huì)進(jìn)行
    四舍五入,如果數(shù)字總位數(shù)小于參數(shù)值且數(shù)字是小數(shù),那么多出的小數(shù)位會(huì)自動(dòng)補(bǔ)零
    如果數(shù)字總位數(shù)小于參數(shù)值且數(shù)字為整數(shù),那么會(huì)改用科學(xué)計(jì)數(shù)法表示。
    var num1 = 100009; 
    var num2 = 100; 
    var num3 = 11111111.00009; 
    var num4 = 1.00609; 
    alert(num1.toPrecision(5)); 
    alert(num2.toPrecision(5)); 
    alert(num3.toPrecision(15)); 
    alert(num4.toPrecision(3)); 
    isNaN(num):判斷是否為數(shù)字,這個(gè)方法很有用
    js中String類(lèi)常用方法:
    charAt(index):用于返回指定位置的字符,index從0開(kāi)始計(jì)算
    charCodeAt(index):用于返回指定字符的ASCII碼
    concat(element1,element2......elementx):用于拼接兩個(gè)或多個(gè)字符串
    indexOf():用于返回指定字符在字符串中第一次出現(xiàn)的索引,從第一個(gè)字符開(kāi)始查找,找到立即返回。
    lastIndexOf():用于返回指定字符在字符串中第一次出現(xiàn)的索引,不過(guò)是從最后面一個(gè)字符開(kāi)始查找。
    match():用于檢索與指定正則匹配的子串,如果開(kāi)啟了全局檢索模式,且有多個(gè)符合條件的子串,那么
    返回的是一個(gè)數(shù)組。
    var str = "hello world! how are you? what are you doing?"; 
    var arr = str.match(/you/g); 
    alert(arr); 
    var str="1 plus 2 equal 3" 
    alert(str.match(/\d\s/g)); 
    replace():用于字符串替換操作,接收兩個(gè)參數(shù)。
    第一個(gè)參數(shù):表示待替換的字符串,或者是替換的正則表達(dá)式
    第二個(gè)參數(shù):替換文本,也可以是一個(gè)function的返回值
    注意此方法不會(huì)改變?cè)址畬?duì)象,而是返回新字符串對(duì)象。
    var str = "I like Java,Java is so easy to learning!Let's together for Java"; 
    var test = str.replace(/Java/g,"Javascript"); 
    alert(str); 
    alert(test); 
    var name = "Doe , John"; 
    alert(name.replace(/(\w+)\s*, \s*(\w+)/, "$2 | $1")); 
    var name = "I like java,java is so easy!"; 
    var test = name.replace(/java/g, function(m,i){alert(m);alert(i);return "javascript";}); 
    alert(test); 
    用function返回值作為替換文本時(shí),function里有兩個(gè)參數(shù):
    m表示前面第一個(gè)參數(shù)即正則匹配到的子串,第二個(gè)參數(shù)是該子串在原字符串中的索引位置
    search():用于返回指定子串或符合指定正則表達(dá)式的子串在原字符串中第一次出現(xiàn)的索引,
    如果沒(méi)有找到,則返回-1
    var str = "I like javascript.";
    alert(str.search("javascript"));
    slice(start,end):用于截取start,end指定區(qū)間內(nèi)的字符串并返回,
    此方法不會(huì)操作原字符串對(duì)象數(shù)據(jù),而是創(chuàng)建字符串副本保存截取后的字符串?dāng)?shù)據(jù)
    如果end未指定,則表示直接從start直到數(shù)組末尾,
    如果start或end為負(fù)數(shù),表示從后面開(kāi)始算起,比如
    -1,表示從倒數(shù)第一個(gè)元素算起,以此類(lèi)推。
    截取的區(qū)間范圍是[start,end),前閉后開(kāi)區(qū)間,且start必須小于end
    如果沒(méi)找到一個(gè)元素,則返回一個(gè)空字符串
    var str = "hello world!"; 
    var test = str.slice(-2,-1); 
    alert(test); 
    alert(str); 
    split():以指定的分割字符或正則表達(dá)式的匹配字符來(lái)分割原字符串,返回結(jié)果以數(shù)組形式表示。
    此方法還可以接收第二個(gè)參數(shù),第二個(gè)參數(shù)可以限制最終返回的數(shù)組元素最大個(gè)數(shù)。
    var str="How are you doing today?"
    alert(str.split(/\s/));
    substr():用于字符串截取,方法接收兩個(gè)參數(shù),
    第一個(gè)參數(shù)start,表示從start索引位置開(kāi)始截取,索引從0開(kāi)始計(jì)算,如果此參數(shù)值是負(fù)數(shù),
    則會(huì)從字符串結(jié)尾開(kāi)始計(jì)算,比如-1表示最后一個(gè)字符,-2表示倒數(shù)第二個(gè)字符,以此類(lèi)推。
    第二個(gè)參數(shù)length,表示截取的字符串長(zhǎng)度,此參數(shù)為可選,如不指定此參數(shù),
    則默認(rèn)會(huì)一直截取到字符串結(jié)尾。
    注意:此方法已不建議使用
    var str = "I like javascript!";
    alert(str.substr(7,10)); 
    substring():用于截取start與end索引區(qū)間內(nèi)的字符串,區(qū)間范圍為[start,end],前閉后開(kāi)
    注意:參數(shù)start和end必須為非負(fù)整數(shù),
    如start為負(fù)數(shù),則默認(rèn)會(huì)將start賦值為0,
    如end為負(fù)數(shù),則默認(rèn)會(huì)將end賦值為0,且截取區(qū)間改為[0,start)。
    如果start大于end,那么會(huì)首先交換兩個(gè)參數(shù)值的位置,即區(qū)間改為[end,start)
    var str1 = "I like javascript!": 
    alert(str1.substring(7,18)); 
    var str2 = "I like javascript!"; 
    alert(str2.substring(3,-3)); 
    toLowerCase():把字符串轉(zhuǎn)換成小寫(xiě)
    toUpperCase():把字符串轉(zhuǎn)換成大寫(xiě)
    js中Date對(duì)象常用方法:
    Date():此方法為Date類(lèi)的構(gòu)造函數(shù),此方法接收日期格式字符串,
           若不給構(gòu)造函數(shù)傳參,則默認(rèn)是取系統(tǒng)當(dāng)前時(shí)間
           構(gòu)造函數(shù)可以接收一個(gè)距1970-01-01的毫秒數(shù)來(lái)構(gòu)建Date對(duì)象,
           也可以接收規(guī)定格式的日期字符串來(lái)構(gòu)建Date對(duì)象
               //var date = new Date("06 05,1987"); //火狐OK IE不OK
      //var date = new Date("6 5,1987");   //火狐OK IE不OK
      //var date = new Date("06 05,1987 23:12:33"); //火狐OK IE不OK
      //var date = new Date("6 5,1987 23:12:33");   //火狐OK IE不OK
      //var date = new Date("1987,06 05"); //火狐OK IE不OK
      //var date = new Date("1987,6 5"); //火狐OK IE不OK
      //var date = new Date("1987,06,05"); //火狐OK IE不OK
      //var date = new Date("1987,6,5"); //火狐OK IE不OK
      //var date = new Date("1987,06 05,23:12:33"); //火狐OK IE不OK
      //var date = new Date("1987,6 5,23:12:33"); //火狐OK IE不OK
      //var date = new Date("1987,06,05,23:12:33"); //火狐OK IE不OK
      //var date = new Date("1987,6,5,23:12:33"); //火狐OK IE不OK
               //var date = new Date("1987/6/5,23:12:33"); //火狐和IE都OK
      //var date = new Date("1987/06/05,23:12:33"); //火狐和IE都OK
      //var date = new Date("06/05/1987,23:12:33"); //火狐和IE都OK
      //var date = new Date("6/5/1987,23:12:33"); //火狐和IE都OK
      //var date = new Date("1987/6/5"); //火狐和IE都OK
      //var date = new Date("1987/06/05"); //火狐和IE都OK
      //var date = new Date("06/05/1987"); //火狐和IE都OK
      var date = new Date("6/5/1987"); //火狐和IE都OK
               //var date = new Date("06-05-1987"); //IE OK,火狐不OK
      //var date = new Date("6-5-1987"); //IE OK,火狐不OK
      //var date = new Date("1987-06-05"); //火狐OK,IE不OK
               alert(date);
          通過(guò)上面這些示例,足以說(shuō)明,如果Date()構(gòu)造函數(shù)需要接收一個(gè)日期格式字符串的話,
          那么字符串格式應(yīng)如下給定:
          yyyy/m/d
          yyyy/MM/d
          yyyy/m/d HH:mm:ss
          yyyy/MM/d HH:mm:ss
          m/d/yyyy
          MM/dd/yyyy
          m/d/yyyy HH:mm:ss
          MM/dd/yyyy HH:mm:ss
    getDate():返回一個(gè)月中的某一天,返回值范圍:1-31
    getDay():返回一周中的第幾天也就是星期幾,返回值范圍:0-6,0表示星期天,6表示星期六
    getMonth():返回日期中的月份數(shù)字,返回值范圍:0-11,0表示1月,11表示12月,這個(gè)有點(diǎn)變態(tài)
    getFullYear():返回日期中的年份數(shù)字,用4位數(shù)字表示而不是2位數(shù)字的縮寫(xiě)形式
    getHours():返回小時(shí)數(shù),返回值范圍:0-23
    getMinutes():返回分鐘數(shù):返回值范圍:0 -59
    getSeconds():返回秒數(shù),返回值范圍:0-59
    getMilliseconds():返回毫秒數(shù),返回值范圍:0-999,這個(gè)方法命名我表示不能理解,為何Seconds首字母不大寫(xiě)?
    getTime():返回指定的日期距1970年1月 1日00:00:00之間的毫秒數(shù)。
    parse(): 用于將符合規(guī)定的日期字符串轉(zhuǎn)換成日期,并返回該日期至1970-01-01的毫秒數(shù)
    注意:此方法是靜態(tài)方法,不用能用Date對(duì)象調(diào)用,而應(yīng)該使用Date類(lèi)調(diào)用。
    //var date = Date.parse("1987-06-05"); //火狐OK,IE不OK
    //var date = Date.parse("06-05-1987"); //IE OK,火狐不OK
    //var date = Date.parse("06/05/1987"); //IE和火狐都OK
    var date = Date.parse("1987/06/05");   //IE和火狐都OK
    //var date = Date.parse("6/5/1987"); //IE和火狐都OK
    //var date = Date.parse("1987/6/5");   //IE和火狐都OK
    //var date = Date.parse("1987/06/05 23:12:22");   //IE和火狐都OK
    //var date = Date.parse("6/5/1987 23:12:22"); //IE和火狐都OK
    //var date = Date.parse("1987/6/5 23:12:22");   //IE和火狐都OK
    alert(date);
    通過(guò)上面的這些示例,不難看出,parse方法接收的日期字符串格式比較兼容的格式為:
    yyyy/MM/dd
    yyyy/m/d
    MM/dd/yyyy
    M/d/yyyy
    yyyy/MM/dd HH:mm:ss
    yyyy/m/d HH:mm:ss
    MM/dd/yyyy HH:mm:ss
    M/d/yyyy HH:mm:ss
    setDate():設(shè)置一個(gè)月中的某一天,取值范圍:1-31
    setDay():設(shè)置一周中的第幾天也就是星期幾,取值范圍:0-6,0表示星期天,6表示星期六
    setMonth():設(shè)置日期中的月份數(shù)字,取值范圍:0-11,0表示1月,11表示12月,這個(gè)有點(diǎn)變態(tài)
    setFullYear():設(shè)置日期中的年份數(shù)字,用4位數(shù)字表示而不是2位數(shù)字的縮寫(xiě)形式
    setHours():設(shè)置小時(shí)數(shù),取值范圍:0-23
    setMinutes():設(shè)置分鐘數(shù):取值范圍:0 -59
    setSeconds():設(shè)置秒數(shù),取值范圍:0-59
    setMilliseconds():設(shè)置毫秒數(shù),取值范圍:0-999,這個(gè)方法命名我表示不能理解,為何Seconds首字母不大寫(xiě)?
    setTime():設(shè)置指定的日期距1970年1月 1日00:00:00之間的毫秒數(shù)。
    toString():將Date對(duì)象轉(zhuǎn)換成字符串形式,默認(rèn)是格林威治標(biāo)準(zhǔn)時(shí)間格式即GMT格式
    toTimeString():將Date對(duì)象的時(shí)間部分轉(zhuǎn)成字符串形式,GMT格式
    toDateString():將Date對(duì)象的日期部分轉(zhuǎn)成字符串形式,GMT格式
    toLocaleString:根據(jù)本地語(yǔ)言的日期規(guī)則表示,中文下是yyyy年MM月dd日 hh:mm:ss
    Date.UTC(year,month,day,hours,minutes,seconds,ms):
    此方法用于根據(jù)世界時(shí)返回距離1970-01-01的毫秒數(shù),前3個(gè)參數(shù)是必須的,其余參數(shù)是可選的,
    分別表示年、月、日、小時(shí)、分鐘、秒、毫秒,
    此方法返回的毫秒數(shù)可以傳遞給Date()構(gòu)造函數(shù),
    Date對(duì)象的toString方法默認(rèn)是轉(zhuǎn)換成GMT格式,對(duì)于我們來(lái)說(shuō),不適用,我們往往希望顯示為yyyy-MM-dd hh:mm:ss格式,
    Date原生對(duì)象沒(méi)有提供這個(gè)功能,只好自己擴(kuò)展了,
    Date.prototype.format = function(format){ 
    var o = { 
    "M+" : this.getMonth()+1, //month 月 
    "d+" : this.getDate(), //day 日 
    "h+" : this.getHours(), //hour 時(shí) 
    "m+" : this.getMinutes(), //minute 分 
    "s+" : this.getSeconds(), //second 秒 
    "q+" : Math.floor((this.getMonth()+3)/3), //quarter季度 
    "S" : this.getMilliseconds() //millisecond毫秒 
    } 
    if(/(y+)/.test(format)) { 
    format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
    } 
    for(var k in o) { 
    if(new RegExp("("+ k +")").test(format)) { 
    format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length)); 
    } 
    } 
    return format; 
    } 
    使用示例:
    var date = new Date(); 
    alert(date.format("yyyy-MM-dd hh:mm:ss")); 
    js的原生Date類(lèi)也沒(méi)有提供add方法即在原日期基礎(chǔ)先添加或減去指定天數(shù),現(xiàn)擴(kuò)展如下:
    Date.prototype.dateAdd = function(interval,number) 
    { 
    var d = this; 
    var k={'y':'FullYear', 'q':'Month', 'm':'Month', 'w':'Date', 'd':'Date', 'h':'Hours', 'n':'Minutes', 's':'Seconds', 'ms':'MilliSeconds'}; 
    var n={'q':3, 'w':7}; 
    eval('d.set'+k[interval]+'(d.get'+k[interval]+'()+'+((n[interval]||1)*number)+')'); 
    return d; 
    } 
    interval參數(shù):
    y       年
    q       季度
    m       月
    d       日
    w       周
    h       小時(shí)
    n       分鐘
    s       秒
    ms      毫秒
    number參數(shù):時(shí)間間隔,必須為數(shù)字,為正數(shù)表示獲取指定間隔的未來(lái)的日期,為負(fù)數(shù)表示過(guò)去的日期
    //用于計(jì)算兩個(gè)日期之間的時(shí)間間隔,
    //使用此方法還能比較兩個(gè)日期的大小,如果返回值大于0,表示objDate2比較大,
    //如果小于0,表示objDate2比較小
    Date.prototype.dateDiff = function(interval,objDate2)
    {
     var d=this, i={}, t=d.getTime(), t2=objDate2.getTime();
     i['y']=objDate2.getFullYear()-d.getFullYear();
     i['q']=i['y']*4+Math.floor(objDate2.getMonth()/4)-Math.floor(d.getMonth()/4);
     i['m']=i['y']*12+objDate2.getMonth()-d.getMonth();
     i['ms']=objDate2.getTime()-d.getTime();
     i['w']=Math.floor((t2+345600000)/(604800000))-Math.floor((t+345600000)/(604800000));
     i['d']=Math.floor(t2/86400000)-Math.floor(t/86400000);
     i['h']=Math.floor(t2/3600000)-Math.floor(t/3600000);
     i['n']=Math.floor(t2/60000)-Math.floor(t/60000);
     i['s']=Math.floor(t2/1000)-Math.floor(t/1000);
     return i[interval];
    }
    interval參數(shù):參照上面dateAdd方法的interval參數(shù)說(shuō)明,
    objDate2:另一個(gè)日期對(duì)象
    js中的Math類(lèi):
    此類(lèi)是靜態(tài)類(lèi),不能通過(guò)構(gòu)造函數(shù)創(chuàng)建實(shí)例的,所以提供的方法都是靜態(tài)方法,直接通過(guò)類(lèi)名調(diào)用
    abs():獲取數(shù)字的絕對(duì)值,如果提供的參數(shù)是字符串,則會(huì)首先嘗試將其轉(zhuǎn)換成數(shù)字,如果不能
    轉(zhuǎn)成數(shù)字,則直接返回NaN,如果能,則返回其絕對(duì)值。
    ceil():對(duì)傳入的參數(shù)進(jìn)行向上取整計(jì)算,如果傳入的不是數(shù)字,則會(huì)嘗試將其進(jìn)行數(shù)字轉(zhuǎn)換,
    不能轉(zhuǎn)換則之間則直接返回NaN
    floor():對(duì)傳入?yún)?shù)進(jìn)行向下取整計(jì)算,如果傳入的不是數(shù)字,則會(huì)嘗試將其進(jìn)行數(shù)字轉(zhuǎn)換,
    不能轉(zhuǎn)換則之間則直接返回NaN
    max(x1,x2,x3.....xn):返回指定參數(shù)中的最大值,如果指定參數(shù)中有一個(gè)不能轉(zhuǎn)換成數(shù)字,則直接
    返回NaN,如果沒(méi)有傳入?yún)?shù),則返回負(fù)無(wú)窮大
    min(x1,x2,x3.....xn):返回指定參數(shù)中的最小值,如果指定參數(shù)中有一個(gè)不能轉(zhuǎn)換成數(shù)字,則直接
    返回NaN,如果沒(méi)有傳入?yún)?shù),則返回正無(wú)窮大
    pow(x,y):返回x 的 y 次冪,如果計(jì)算結(jié)果是負(fù)數(shù),則返回NaN,如果由于計(jì)算結(jié)果太大,導(dǎo)致浮點(diǎn)溢出,
    則返回正無(wú)窮大
    random():返回0 ~ 1 之間的一個(gè)隨機(jī)數(shù)。
    round(x):與 x 最接近的整數(shù)。如果x是正數(shù),那么0.5會(huì)轉(zhuǎn)成1,如果是-0.5,那么會(huì)舍掉,
     -0.50001才會(huì)轉(zhuǎn)成-1
    sqrt(x):返回一個(gè)數(shù)的平方根,如果 x 小于 0,則返回 NaN,
    如果傳入的不是數(shù)字,則會(huì)嘗試將其進(jìn)行數(shù)字轉(zhuǎn)換,
    不能轉(zhuǎn)換則之間則直接返回NaN
    js的RegExp正則對(duì)象:
    創(chuàng)建正則對(duì)象兩種方式:
    1. /pattern/attributes
    pattern是正則表達(dá)式部分,
    attributes:可選參數(shù),包含屬性 "g"、"i" 和 "m"等取值
    g:表示全局匹配(查找所有匹配而非在找到第一個(gè)匹配后停止)
    i:表示忽略大小寫(xiě)
    m:表示多行匹配
    2,new RegExp(pattern,attributes),第二個(gè)參數(shù)可選
    以上這篇JavaScript原生對(duì)象常用方法總結(jié)(推薦)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考