2016-05-25 20 views
7

arrayの要素が真実であるかどうかをテストする方法として、array.some(Boolean)を書きたいと思います。JavaScript:Booleanオブジェクトをコールバック関数として使用できますか?

Booleanオブジェクトをこのように使用する際に問題がありますか?最新のブラウザでも同じ動作をしていますか?常にarray.some(function(elem) { return !!elem; })に相当しますか?

+1

私の知る限りでは、Booleanに任意の値をキャストこの機能を知っています。どの関数もオブジェクトであるため、ブール値であるオブジェクトは問題ではありません。 – sielakos

+0

もちろん、ユーモア感覚のある人は、 'Boolean = function(){trueを返します。 }; '。それ以外に禁忌はないはずです。 –

答えて

7

Booleanオブジェクトをこのように使用する際に問題がありますか?

たとえば、parseInt(これは問題になります)とは異なり、Booleanは1つの引数しか期待していません。だから、他のコールバック引数(インデックスと配列)を渡すことに問題はないはずです。単に無視するだけです。

最新のブラウザでも同じ動作をしていますか?

希望します。 Boolean機能を信頼できない場合は、残っているものは何ですか?

いつもarray.some(function(elem) { return !!elem; })に相当しますか?

はい。 specから:Booleanを関数としてではなく、コンストラクタと呼ばれる

は、型変換を行います。

これは基本的には!!の機能です。スペックから


関連文献:

関連する問題