7
我想寫array.some(Boolean)
作爲測試array
中是否有任何元素是真的。JavaScript:布爾對象可以用作回調函數嗎?
以這種方式使用Boolean
對象有任何問題嗎?它是否在現代瀏覽器中具有相同的行爲?它總是等於array.some(function(elem) { return !!elem; })
?
我想寫array.some(Boolean)
作爲測試array
中是否有任何元素是真的。JavaScript:布爾對象可以用作回調函數嗎?
以這種方式使用Boolean
對象有任何問題嗎?它是否在現代瀏覽器中具有相同的行爲?它總是等於array.some(function(elem) { return !!elem; })
?
以這種方式使用
Boolean
對象有任何問題嗎?
否與parseInt
例如(這會有問題),Boolean
只需要一個參數。所以在傳遞其他回調參數(索引和數組)時不應該有任何問題,它會簡單地忽略它們。
在現代瀏覽器中它有相同的行爲嗎?
我確實希望如此。如果你不能相信Boolean
功能,還剩下什麼?
它總是等於
array.some(function(elem) { return !!elem; })
嗎?
是的。從spec:
Boolean
時被稱爲一個函數,而不是作爲構造,它執行一個類型轉換。
這基本上就是!!
所做的。從規格
相關參考文獻:
據我所知,這個功能是強制轉換爲布爾任意值。任何函數也是一個對象,所以布爾作爲一個對象應該不成問題。 – sielakos
當然,有幽默感的人可以用'Boolean = function(){return true;'覆蓋布爾函數。 };'。除此之外,不應有禁忌症。 –