一起來啃《JavaScript語言精粹》----方法(method)

一、Array

  • array.concat(item...)
    concat方法產(chǎn)生一個新數(shù)組,它包含一份array的淺拷貝,并把一個或多個參數(shù)item附加在其后。如果參數(shù)item是一個數(shù)組,那么它的每個元素會被分別添加。


    Paste_Image.png
  • array.join(separator)
    join方法把一個array構(gòu)造成一個字符串。它先把array中的每個元素構(gòu)造成一個字符串,接著用一個separator分隔符把它們連接在一起。默認的是逗號‘,’。要想做到無間隔的連接,我們可以使用空字符串作為separator。


    Paste_Image.png

    pop可以像這樣實現(xiàn):
    Array.method('pop', function() {
    return this.splice(this.length - 1, 1)[0];
    }

  • array.pop()
    pop和push方法使得數(shù)組array可以像堆棧一樣工作。pop方法移除array中的最后一個元素并返回該元素。如果該array是空,它會返回undefined。


    Paste_Image.png
  • array.push(item...)
    push可以像這樣實現(xiàn):
    Array.method('push', function(){
    this.splice.apply(this, [this.length,0].concat(Array.prorotype.slice.apply(arguments));
    return this.length;
    }
    push方法把一個或多個參數(shù)item附加到一個數(shù)組的尾部。和concat方法不同的是,它會修改array,如果參數(shù)item是一個數(shù)組,它會把參數(shù)數(shù)組作為單個元素整個添加到數(shù)組中,并返回這個array的新長度值。


    Paste_Image.png
  • array.reverse()
    reverse方法反轉(zhuǎn)array里的元素的順序,并返回array本身


    Paste_Image.png
  • array.shift()
    shift方法移除數(shù)組array中的第1個元素并返回該元素。如果這個數(shù)組array是空的,它會返回undefined。shift通常比pop慢得多:


    Paste_Image.png

    shift可以這樣實現(xiàn):
    Array.method('shift', function(){
    return this.splice(0,1)[0];
    })

  • array.unshift(item...)
    unshift方法像push方法一樣,用于把元素添加到數(shù)組中,但它是把item插入到array的開始部分而不是尾部。它返回數(shù)組的新的長度:


    Paste_Image.png
  • array.slice(start,end)
    slice方法對array中的一段做淺拷貝。首先拷貝array[start],一直拷貝到array[end]為止。end參數(shù)是可選的,默認值是該數(shù)組的長度。如果兩個參數(shù)中的任何一個是負數(shù),array.length會和它們相加,試圖讓它們成為非負數(shù)。如果start大于等于array.length,得到的結(jié)果將會是一個新的空數(shù)組。


    Paste_Image.png
  • array.splice(start,deleteCount,item...)
    splice方法從array中移除一個或多個元素,并用新的item替換它們。參數(shù)start是從數(shù)組array中移除元素的開始位置。參數(shù)deleteCount是要移除的元素個數(shù)。如果有額外的參數(shù),那些item會插入到被移除元素的位置上。它返回一個包含被移除元素的數(shù)組。
    splice最主要的用處是從一個數(shù)組中刪除元素。千萬不要把splice和slice弄混了:


    Paste_Image.png
  • array.sort(comparefn)
    sort方法對array中的內(nèi)容進行排序。它不能正確地給一組數(shù)字排序:


    Paste_Image.png

    JavaScript的默認比較函數(shù)把要被排序的元素都視為字符串。所以當它比較這些數(shù)字的時候,會把它們轉(zhuǎn)化為字符串,于是得到一個錯得離譜的結(jié)果。
    幸運的是,你可以使用自己的比較函數(shù)來替換默認的比較函數(shù)。你的比較函數(shù)接收連個參數(shù),并且這兩個參數(shù)相等則返回0,如果第1個參數(shù)應該排列在前面,則返回一個負數(shù),如果第2個參數(shù)應該排列在前面,則返回一個正數(shù)。


    Paste_Image.png

    上面這個函數(shù)可以使數(shù)字正確排序,但它不能使字符串排序。如果我們想要給任何包含簡單值的數(shù)組排序,必須要做更多的工作:
    Paste_Image.png

二、Number

  • number.toExponential(fractionDigits)
    toExponential方法把這個number轉(zhuǎn)換成一個指數(shù)形式的字符串??蛇x參數(shù)fractionDigits控制其小數(shù)點的數(shù)字位數(shù)。它的值必須在0~20:


    Paste_Image.png
  • number.toFixed(fractionDigits)
    toFixed方法把這個number轉(zhuǎn)換成為一個十進制數(shù)形式的字符串。可選參數(shù)fractionDigits控制其小數(shù)點后的數(shù)字位數(shù)。它的值必須在0~20,默認為0:


    Paste_Image.png
  • number.toPrecision(precision)
    toPrecision方法把這個number轉(zhuǎn)換成為一個十進制數(shù)形式的字符串??蛇x參數(shù)precious控制數(shù)字的精度。它的值必須在0~21:


    Paste_Image.png
  • number.toString(radix)
    toString方法把這個number轉(zhuǎn)換成一個字符串??蛇x參數(shù)radix控制基數(shù)。它的值必須在2~36。默認的radix是以10為基數(shù)。radix參數(shù)最常用的是整數(shù),但是它可以用任意的數(shù)字。
    在最普通的情況下,number.toSting()可以更簡單地寫為String(number):


    Paste_Image.png
  • Object
    object.hasOwnProperty(name)
    如果這個object包含一個名為name的屬性,那么hasOwnProperty方法返回true。原型鏈中的同名屬性是不會被檢查的。這個方法對name就是“hasOwnProperty”時不起作用,此時會返回false:


    Paste_Image.png

三、String

  • string.charAt(pos)
    charAt方法返回在string中pos位置處的字符,pos默認值是0。如果pos小于0或大于等于字符串長度,它會返回空字符串:


    Paste_Image.png

    charAt可以像這樣實現(xiàn):
    String.method('charAt', function(pos){
    return this.slice(pos, pos+1);
    })

  • string.charCodeAt(pos)
    charCodeAt方法同charAt一樣,只不過它返回的不是一個字符串,而是以整數(shù)形式表示的在string中的pos位置處的字符的字符碼位。如果pos小于0或大于等于字符串長度,它返回NaN:


    Paste_Image.png
  • String.fromCharCode(char...)
    String.fromCharCode函數(shù)根據(jù)一串數(shù)字編碼返回一個字符串。


    Paste_Image.png
  • string.concat(string..)
    concat方法把其他的字符串連接在一起來構(gòu)造一個新的字符串。它很少被使用,因為用+運算符更為方便:


    Paste_Image.png
  • string.indexOf(searchString,position)
    indexOf方法在string內(nèi)查找另一個字符串。如果它被找到,返回第1個匹配字符的位置,否則返回-1.可選參數(shù)position可設(shè)置從string的某個指定的位置開始查找:


    Paste_Image.png
  • string.replace(searchValue,replaceValue)
    replace方法對string進行查找和替換操作,并返回一個新的字符串。參數(shù)searchValue可以是一個字符串或一個正則表達式對象。如果它是一個字符串,那么searchValue只會在第1次出現(xiàn)的地方被替換,所以下面的代碼結(jié)果是“mother-in_law”:
    var result = "mother_in_law".replace('','-');//mother-in_law
    如果searchValue是一個正則表達式并且?guī)в術(shù)標識,它會替換所以得匹配。如果沒有帶g標識,它會僅替換第1個匹配:
    "mother_in_law".replace(/
    /g,'-')//mother-in-law
    "mother_in_law".replace(/_/,'-')//mother-in_law
  • string.search(regexp)
    search方法和indexOf方法類似,只是它接受一個正則表達式對象作為參數(shù)而不是一個字符串。如果找到匹配,它返回第1個匹配的首字符位置,如果沒有找到匹配,則返回-1.此方法會忽略g標識,且沒有position參數(shù):


    Paste_Image.png
  • string.slice(start,end)
    slice方法復制string的一部分來構(gòu)造一個新的字符串。如果start參數(shù)是負數(shù),它將與string.length相加。end參數(shù)是可選的,且默認值是string.length。如果end為負數(shù),那么它將與string.length相加。end參數(shù)等于你要取得最后一個字符的位置加上1。要想得到從位置p開始的n個字符,就用string.slice(p, p+n)。


    Paste_Image.png
  • string.substring(start,end)
    substring方法和slice方法一樣,只是它不能處理負數(shù)參數(shù)。沒有任何理由去使用substring方法。請用slice替代它。
  • string.split(separator,limit)
    split 方法把這個string分割成片段來創(chuàng)建一個字符串數(shù)組。可選參數(shù)limit可以限制被分割的片段數(shù)量。separator參數(shù)可以是一個字符串或一個正則表達式。
    如果separator是一個空字符,會返回一個單字符的數(shù)組:


    Paste_Image.png

    否則,此方法會在string中查找所有separator出現(xiàn)的地方。分隔符兩邊的每個單元格文本都會被復制到該數(shù)組中。此方法會忽略g標識:


    Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容