js-primer
js-primer copied to clipboard
`typeof` 演算子で `function` が返ることについて補足する
該当ページ
リクエスト/提案内容
文中で、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 が望ましいとは思います。
a.
typeof
演算子で関数を評価するとfunction
が返ることについて文中で補足する
関数も ここの流れに入れるのが自然な感じがしますね。 関数もオブジェクトですが、特別扱いされるので、プリミティブとオブジェクト(関数とその他)という感じで
データ型を細かく見ていくと、7つのプリミティブ型とオブジェクトからなります。