廢話不說,直接上題。html
slice(),接收兩個參數,第一個爲開始index(從0開始),第二個爲結束的index(也是從0開始,可是不包括index自己,只到index-1)。返回值是截取的數組,原數組不變化。傳第三個參數,沒有做用。node
splice(),接收無數個參數,第一個爲開始的index(從0開始),第二個爲刪除的元素的個數(0表明不刪除,1表明刪除一個...),第三個爲添加的元素,第四個也爲添加的元素.....,返回值是刪除的元素組成的數組,若是刪除了0個就返回空數組,原數組會被改變成被操做後的數組(這裏須要注意一個問題,好比:arr =[1,2,3],arr.splice(1,0,4),arr會變成[1,4,2,3],添加的4是在2的前面插入)。面試
以上兩個方法的區別和應用,面試官會問。數組
forEach方法(除了數組對象以外,forEach 方法可由具備 length 屬性且具備已按數字編制索引的屬性名的任何對象使用。好比:{0:"a",1:"b",length:2})less
對於數組中出現的每一個元素,forEach方法都會調用callback函數一次(採用升序索引順序),但不會爲數組中缺乏的元素調用回調函數([1,2,"",3],第三個選項不會執行callback)。函數
arr.forEach(callback,thisArg),只接受兩個參數,一個是回調方法,一個是context.callback必選, 最多能夠接受三個參數的函數。 對於數組中的每一個元素,forEach 都會調用callbackfn 函數一次。thisArg可選, callbackfn 函數中的 this 關鍵字可引用的對象,若是省略 thisArg,則 undefined將用做 this 值。這時你回答出來這些已經以爲本身還能夠了,而後面試官會問你那callback的三個參數是什麼?ui
回調函數的語法以下所示:this
function callback(value, index, array1),value:數組元素的值。index:數組元素的數字索引。array1:包含該元素的數組對象。能夠在回調方法中改變原數組。spa
這個方法的做用就是:利用數組中的值作一些應用,好比:顯示出來,累加等等。3d
這裏你們能夠去區分一下$("div"),jQuery對象的each方法。很像,可是在回調方法調用時,傳參不同,請仔細查看。
連接地址:http://www.cnblogs.com/chaojidan/p/4141413.html
map方法,跟forEach方法差很少,惟一的區別是,arr.map(callback,thisArg),有返回值,返回值是:對每一個數組中的元素執行callback後,callback返回的值組成的數組。
固然原數組也不會改變,除非你在callback(value, index, array1)中直接改變array1。
這個方法的做用就是:把數組組裝成其餘的形式,好比:對數組中的每一項加1,或者平方等等。
這裏你們能夠去區分下$("div"),jQuery對象的map方法,也很像,可是傳參不同,同時,回調方法調用時,傳參也不同。請仔細查看。
連接地址:http://www.cnblogs.com/chaojidan/p/4141413.html
indexOf方法:接收兩個參數:searchElement:必需。 要在 array1 中定位的值。fromIndex:可選。 用於開始搜索的數組索引, 若是省略 fromIndex,則從索引 0 處開始搜索。 若是 fromIndex 大於或等於數組長度,則返回 -1。 若是 fromIndex 爲負,則搜索從數組長度加上 fromIndex 的位置處開始。若是計算所得的索引小於 0,則搜索整個數組。數組元素將與 searchElement 值進行全等比較,與 === 運算符相似。
lastIndexOf:接收兩個參數:searchElement:必需。 要在 array1 中定位的值。fromIndex:可選。 用於開始搜索的數組索引, 若是省略 fromIndex,則搜索將從數組中的最後一個索引處開始。 若是 fromIndex 大於或等於數組長度,則搜索整個數組。 若是 fromIndex 爲負,則搜索從數組長度加上 fromIndex 的位置處開始。 若是計算所得的索引小於 0,則返回 -1。數組元素將與 searchElement 值進行全等比較,與 === 運算符相似。
最後就是一個很重要的方法,面試常常問到的方法:
replace方法:它會跟正則一塊兒出題。它接收兩個參數,好比:str.replace(str1,str2);
str1必需。規定子字符串或要替換的模式的 RegExp 對象。請注意,若是該值是一個字符串,則只會替換一個。好比:"abbc".replace("b","d") -> 返回"adbc"。
str2必需。規定了替換文本或生成替換文本的函數。
返回值,就是替換以後的字符串。原字符串不改變。
若是須要把匹配到的字符所有替換,須要使用正則"abbc".replace(/b/g,"d") -> 返回"addc"。
replace() 方法的參數 str2能夠是函數。在這種狀況下,每一個匹配都調用該函數,它返回的字符串將做爲替換文本使用。該函數的第一個參數是匹配模式的字符串。接下來的參數是與模式中的子表達式匹配的字符串,能夠有 0 個或多個這樣的參數。接下來的參數是一個整數,聲明瞭匹配在 str中出現的位置。最後一個參數是 str自己。
好比:"abcd".replace(/(a)(b)(c)/g,function(match,$1,$2,$3,index,str){ match:abc(匹配到的字符串),$1:a(匹配到的第一個子表達式),以此類推,若是沒有子表達式,就不會有這些參數,就直接是index。 index:0(匹配到的字符串在原始字符串中的位置,也就是"abc"在"abcd"中的位置),最後一個是str:"abcd"(原始字符串)})
此方法功能很強大,推薦精讀,有時可讓面試官眼前一亮。
insertBefore方法
舉個例子:
<ul id="ul"><li>1</li><li>2</li></ul>
var list = document.getElementById("ul");
list.insertBefore(newItem,list.childNodes[0]);第一個參數必選,插入的新節點。第二個參數可選,在其以前插入新節點。若是未規定,則 insertBefore 方法會在list結尾插入 newnode。
加油!