我想写array.some(Boolean)
来测试array
中的任何元素是否真实。
以这种方式使用Boolean
对象是否有任何问题?它在现代浏览器中是否具有相同的行为?它总是等同于array.some(function(elem) { return !!elem; })
吗?
答案 0 :(得分:7)
以这种方式使用
Boolean
对象是否有任何问题?
没有。与parseInt
不同(例如,这会有问题),Boolean
只需要一个参数。所以将其他回调参数传递给它(索引和数组)不应该有任何问题,它只会忽略它们。
它是否在现代浏览器中具有相同的行为?
我确实希望如此。如果您不信任Boolean
函数,还剩下什么?
它总是等同于
array.some(function(elem) { return !!elem; })
吗?
是。来自spec:
当
Boolean
作为函数而不是构造函数调用时,它会执行类型转换。
这基本上也是!!
的作用。
规范中的相关参考资料: