js-primer icon indicating copy to clipboard operation
js-primer copied to clipboard

`typeof` 演算子で `function` が返ることについて補足する

Open kangetsu121 opened this issue 2 years ago • 1 comments

該当ページ

リクエスト/提案内容

文中で、JavaScript のデータ型について以下のように説明しており、ここを読んだ段階では、読者は関数 (function) を typeof 演算子で評価した結果として object が返ることを期待すると思います。 https://github.com/asciidwango/js-primer/blob/25089ae163c19d3f92d670b7a8fef6d432ca8a20/source/basic/data-type/README.md?plain=1#L25-L37

しかし、そのすぐ下の typeof 演算子を使った確認では、評価結果として function が返る例が示されています。 https://github.com/asciidwango/js-primer/blob/25089ae163c19d3f92d670b7a8fef6d432ca8a20/source/basic/data-type/README.md?plain=1#L44-L55

console.log(typeof function() {}); // => "function"

ただしその後も typeof 演算子の評価結果としての function についての言及はないため、どこかでこの結果について補足するのはいかがでしょうか。 詳細に入りすぎても混乱すると思うので、コラム的に言及するのみで良いとは思います。

MDN の解説を参照するだけでも良いかと思いましたが、初学者はかえって混乱すると思ったので、できれば文中で補足があるとありがたいと思いました。

ご検討よろしくお願いします。

期待する結果

以下のいずれかが反映される:

a. typeof 演算子で関数を評価すると function が返ることについて文中で補足する b. console.log(typeof function() {}); // => "function" の記述を消す c. function がかえる結果については深追いしないことを文中で明言する

自分で試した読者が混乱する・質問がくると思うので、a が望ましいとは思います。

kangetsu121 avatar Aug 06 '22 06:08 kangetsu121

a. typeof 演算子で関数を評価すると function が返ることについて文中で補足する

関数も ここの流れに入れるのが自然な感じがしますね。 関数もオブジェクトですが、特別扱いされるので、プリミティブとオブジェクト(関数とその他)という感じで

データ型を細かく見ていくと、7つのプリミティブ型とオブジェクトからなります。

azu avatar Aug 14 '22 14:08 azu