2

好奇心から、typeofが通常のメソッドまたは関数ではなく、代わりに変数またはデータの前に配置される理由は何ですか。

彼らはこれを行います: var something = typeof somethingElse;

それよりも: var something = somethingElse.typeof();

また、typeofおよびvarキーワードを参照するための正しい用語は何ですか?彼らはオペレーターですか?

4

2 に答える 2

9

はい、、、、などtypeofの単項演算子です。一方、 は変数宣言ステートメントの一部であり、派手な名前はありません。+-~!voidvar

メソッドにしなかった理由は次の 2 つだと思います。

  1. nullとで使用できますundefined
  2. エラーなしで宣言されていない変数で使用できます。

それが通常のメソッドである場合、それらはどちらも機能せず、特定のメソッドのように見えるものに特別な例外を追加するのは面倒です.

于 2012-06-28T18:28:57.360 に答える
3

Mozilla ドキュメントでは typeof を演算子と呼んでいます。彼らのドキュメントによると:

typeof 演算子は、評価されていないオペランドの型を示す文字列を返します。

彼らがそれを何と呼んでいるのかはそれほど重要ではないことに注意してください.ECMA仕様がそれを何と呼んでいるのか.

Mozilla のドキュメントによると、演算子のタイプは JavaScript 1.1 および ECMA バージョン: ECMA-262 (および E4X オブジェクトの場合は ECMA-357) で定義されています。

興味がある場合は、バージョン 5.1 の ECMA 262 仕様(警告 - pdf リンク) で、71 ページのセクション 11.4.3 の typeof 演算子について説明しています。

于 2012-06-28T18:26:44.707 に答える