JavaScript:Boolean对象可以用作回调函数吗?

时间:2016-05-25 20:17:03

标签: javascript callback boolean ecmascript-6

我想写array.some(Boolean)来测试array中的任何元素是否真实。

以这种方式使用Boolean对象是否有任何问题?它在现代浏览器中是否具有相同的行为?它总是等同于array.some(function(elem) { return !!elem; })吗?

1 个答案:

答案 0 :(得分:7)

  

以这种方式使用Boolean对象是否有任何问题?

没有。与parseInt不同(例如,这会有问题),Boolean只需要一个参数。所以将其他回调参数传递给它(索引和数组)不应该有任何问题,它只会忽略它们。

  

它是否在现代浏览器中具有相同的行为?

我确实希望如此。如果您不信任Boolean函数,还剩下什么?

  

它总是等同于array.some(function(elem) { return !!elem; })吗?

是。来自spec

  

Boolean作为函数而不是构造函数调用时,它会执行类型转换。

这基本上也是!!的作用。

规范中的相关参考资料: