js中更短的 Array 類型轉(zhuǎn)換
更新時間:2011年10月30日 23:25:21 作者:
代碼永遠都是那么好玩,而 Trick 不斷。那天張克軍在 twitter 上說還有比 [].slice.call() 更短的 Array 轉(zhuǎn)換么
當(dāng)時我在分享會,想試試,但身邊沒有電腦。今天打開 Firebug 的那一瞬間,突然記起這事。馬上試了一下之前想的一個方案??梢?!代碼如下:
function a(){
var arr = Array(arguments);
alert(arr instanceof Array);
}
a('b');
在看 Baidu Tangram 的時候,最??吹降氖?String('a string'),不像其實地方的用法,是使用與一個空字符串字面量相加來強制類型轉(zhuǎn)換。當(dāng)時,就想到了如果 Array() 可以實現(xiàn),那不是更爽?當(dāng)然。而這是為什么呢?可以看一下這個打印出來的日志:
console.log(Array,[],Array(),new Array())
// => [undefined] [] [] []
console.log(Array('sofish'), ['sofish'], new Array('sofish'))
// => ["sofish"] ["sofish"] ["sofish"]有趣吧。其實像 new Array() 可以省去 new,變成 Array(),都是創(chuàng)建一個空數(shù)組實例。
至于用那種方法好,我也遇到的情況并不多,不能說明什么狀態(tài)。類型的轉(zhuǎn)換我們需要常用到的,還需要去做更深層的研究。而像第一種做法,至少可是很多現(xiàn)在流行的框架使用的方法。一般情況下都用在于把 function 的 arguments 對象轉(zhuǎn)換為數(shù)組來讓我們可以對其做更多的事。如果你想使用的話,保險的用法還是用第一種。
復(fù)制代碼 代碼如下:
function a(){
var arr = Array(arguments);
alert(arr instanceof Array);
}
a('b');
在看 Baidu Tangram 的時候,最??吹降氖?String('a string'),不像其實地方的用法,是使用與一個空字符串字面量相加來強制類型轉(zhuǎn)換。當(dāng)時,就想到了如果 Array() 可以實現(xiàn),那不是更爽?當(dāng)然。而這是為什么呢?可以看一下這個打印出來的日志:
復(fù)制代碼 代碼如下:
console.log(Array,[],Array(),new Array())
// => [undefined] [] [] []
console.log(Array('sofish'), ['sofish'], new Array('sofish'))
// => ["sofish"] ["sofish"] ["sofish"]有趣吧。其實像 new Array() 可以省去 new,變成 Array(),都是創(chuàng)建一個空數(shù)組實例。
至于用那種方法好,我也遇到的情況并不多,不能說明什么狀態(tài)。類型的轉(zhuǎn)換我們需要常用到的,還需要去做更深層的研究。而像第一種做法,至少可是很多現(xiàn)在流行的框架使用的方法。一般情況下都用在于把 function 的 arguments 對象轉(zhuǎn)換為數(shù)組來讓我們可以對其做更多的事。如果你想使用的話,保險的用法還是用第一種。
您可能感興趣的文章:
相關(guān)文章

kindeditor編輯器點中圖片滾動條往上頂?shù)腷ug
這篇文章主要介紹了kindeditor編輯器點中圖片滾動條往上頂?shù)腷ug的相關(guān)資料,需要的朋友可以參考下
2015-07-07 
js操作XML文件的實現(xiàn)方法兼容IE與FireFox
下面小編就為大家?guī)硪黄猨s操作XML文件的實現(xiàn)方法兼容IE與FireFox。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
2016-06-06 
跟我學(xué)習(xí)javascript的作用域與作用域鏈
跟我學(xué)習(xí)javascript的作用域與作用域鏈,感興趣的小伙伴們可以參考一下
2015-11-11