0

を使用できることは認識していますがtypeof、使用しているかどうかを知りたいです

String(anyVariable) === anyVariable

が文字列かどうかを調べるにanyVariableは:

  • 一般的に有効なアプローチですか?
  • ブラウザ間で一貫して動作しますか?
  • 落とし穴はありますか?
4

2 に答える 2

1

「文字列」はタイプを比較するのではなく、保存されたテキストを操作するために使用されるため、typeofを使用しないでください。最大限の安定性とベスト プラクティスを保証するために、意図した用途で機能を使用することをお勧めします。また、目的はメソッドで型を拡張することです。したがって、型の比較だけでなく、基本的により多くの作業と処理を引き起こしています。うまくいけば、これは答えとして「意見」があるだけの質問ですが、それが答えになることを願っています。新しいオブジェクトを作成して現在のオブジェクトに割り当てて、それがオブジェクトのタイプであるかどうかを確認することはありませんか? いいえ、「typeof」を使用するだけです。

于 2013-10-17T18:44:11.640 に答える
0

あなたの方法とはるかに単純な方法を使用する理由は考えられませんtypeof。あなたのものはパフォーマンスが低下し (Matti の jsperf により 15 倍遅くなる)、より複雑になる可能性があります。

あなたのメソッドは複数のメモリ操作(文字列オブジェクトを作成し、それに文字列値を割り当てる)を必要とし、その後ガベージコレクタを実行する必要がありtypeofますが、内部のJavaScriptオブジェクトのプロパティを見るだけです。

疑問がある場合は、問題を解決する最も簡単な方法を選択してください。

疑問がある場合は、問題を解決するために言語定義で指定されている方法を選択してください。

判断に迷う場合は、メモリ操作が少なくて済む方法を選択してください。

于 2013-10-17T18:44:04.830 に答える