slice
返回數(shù)組片段
var a = ['a','b','c','d','e','f','g']; alert(a.slice(1,2)); // -> b alert(a.slice(2)); // -> c,d,e,f,g alert(a.slice(-4)); // -> d,e,f,g alert(a.slice(-2,-6)); // -> 空
a.slice(1,2),從下標為1開始,到下標為2之間的數(shù),注意并不包括下標為2的元素 如果只有一個參數(shù),則默認到數(shù)組最后 -4是表示倒數(shù)第4個元素,所以返回倒數(shù)的四個元素 最后一行,從倒數(shù)第2開始,因為是往后截取,所以顯然取不到前面的元素,所以返回空數(shù)組,如果改成 a.slice(-6,-2) 則返回b,c,d,e
splice
從數(shù)組刪除某片段的元素,并返回刪除的元素
var a = [1,2,3,4,5,6,7,8,9]; document.write(a.splice(3,2)); // -> 4,5 document.write(a); // -> 1,2,3,6,7,8,9 document.write(a.splice(4)); // -> 7,8,9 注:IE下返回空 document.write(a); // -> 1,2,3,6 document.write(a.splice(0,1)); // -> 1 document.write(a); // -> 2,3,6 document.write(a.splice(1,1,["aa","bb","cc"])); // -> 3 document.write(a); // -> 2,aa,bb,cc,6,7,8,9 document.write(a.splice(1,2,"ee").join("#")); // -> aa,bb,cc#6 document.write(a); // -> 2,ee,7,8,9 document.write(a.splice(1,2,"cc","aa","tt").join("#")); // -> ee#7 document.write(a); // -> 2,cc,aa,tt,8,9
注意該方法在IE下,第二個參數(shù)是必須的,不填則默認為0,例如a.splice(4),在IE下則返回空,效果等同于a.splice(4,0)
toString
把數(shù)組轉(zhuǎn)為字符串,不只數(shù)組,所有對象均可使用該方法
var a = [5,6,7,8,9,["A","BB"],100]; document.write(a.toString()); // -> 5,6,7,8,9,A,BB,100 var b = new Date() document.write(b.toString()); // -> Sat Aug 8 17:08:32 UTC+0800 2009 var c = function(s){ alert(s); } document.write(c.toString()); // -> function(s){ alert(s); }
布爾值則返回true或false,對象則返回[object objectname] 相比join()方法,join()只對一維數(shù)組進行替換,而toString()則把整個數(shù)組(不管一維還是多維)完全平面化 同時該方法可用于10進制、2進制、8進制、16進制轉(zhuǎn)換,例如
var a = [5,6,7,8,9,"A","BB",100]; for(var i=0; i<a.length; i++){ document.write(a[i].toString() + " 的二進制是 " + a[i].toString(2) + " ,八進制是 " + a[i].toString(8) + " ,十六進制是 " + a[i].toString(16)); // -> 4,5 }
輸出結(jié)果
5 的二進制是 101 ,八進制是 5 ,十六進制是 5 6 的二進制是 110 ,八進制是 6 ,十六進制是 6 7 的二進制是 111 ,八進制是 7 ,十六進制是 7 8 的二進制是 1000 ,八進制是 10 ,十六進制是 8 9 的二進制是 1001 ,八進制是 11 ,十六進制是 9 A 的二進制是 A ,八進制是 A ,十六進制是 A BB 的二進制是 BB ,八進制是 BB ,十六進制是 BB 100 的二進制是 1100100 ,八進制是 144 ,十六進制是 64
轉(zhuǎn)換只能在元素進行,如果對整個數(shù)組進行轉(zhuǎn)換,則原封不動返回該數(shù)組
toLocaleString
返回本地格式字符串,主要用在Date對象上
var a = new Date(); document.write(a.toString()); // -> Sat Aug 8 17:28:36 UTC+0800 2009 document.write(a.toLocaleString()); // -> 2009年8月8日 17:28:36 document.write(a.toLocaleDateString()); // -> 2009年8月8日
區(qū)別在于,toString()返回標準格式,toLocaleString()返回本地格式完整日期(在【控制面板】>>【區(qū)域和語言選項】,通過修改[時間]和[長日期]格式),toLocaleDateString()跟toLocaleString()一樣,只是少了時間
valueOf
根據(jù)不同對象返回不同原始值,用于輸出的話跟toString()差不多,但是toString()是返回string類型,而valueOf()是返回原對象類型
var a = [1,2,3,[4,5,6,[7,8,9]]]; var b = new Date(); var c = true; var d = function(){ alert("sunnycat"); }; document.write(a.valueOf()); // -> 1,2,3,4,5,6,7,8,9 document.write(typeof (a.valueOf())); // -> object document.write(b.valueOf()); // -> 1249874470052 document.write(typeof(b.valueOf())); // -> number document.write(c.valueOf()); // -> true document.write(typeof(c.valueOf())); // -> boolean document.write(d.valueOf()); // -> function () { alert("sunnycat"); } document.write(typeof(d.valueOf())); // -> function
數(shù)組也是對象,所以typeof (a.valueOf())返回object,返回的依然是個多維數(shù)組
var a = [1,2,3,[4,5,6,[7,8,9]]]; var aa = a.valueOf(); document.write(aa[3][3][1]); // -> 8
Date對象返回的是距離1970年1月1日的毫秒數(shù), Math和Error對象沒有valueOf方法
經(jīng)典論壇交流: http://bbs.blueidea.com/thread-2945123-1-1.html
本文鏈接:http://m.95time.cn/tech/web/2009/6958.asp
出處:藍色理想
責任編輯:bluehearts
上一頁 認識Javascript數(shù)組 [3] 下一頁
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|