ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript_javascript スキルにおける「基本型」に関する議論の概要
フロントエンドのインタビューでよく聞かれる質問の 1 つは、「JavaScript の基本的なタイプはいくつありますか?」です。
答えには「数値、文字列、ブール値」もあれば、「Null、未定義」を追加するものもあります。そして「オブジェクト」も基本型だと思う人もいるかもしれません。それはどんな感じですか?
ECMAScript (V3、V5) には、いわゆる「プリミティブ型」という概念がまったく存在せず、型を 6 つの型に分けているだけです。
ECMAScript では、タイプによって表されるタイプのみについて言及します。V3 および V5 では、ドキュメント全体でキーワード「プリミティブ」を検索すると「プリミティブ タイプ」は表示されませんが、true/false/ などの「プリミティブ値」は存在します。 0~9などこれは、仕様にはいわゆる「基本型」や「プリミティブ型」がまったく存在しないことを示しています。あるということであれば、オブジェクトは明らかに同じです。つまり、6 つの基本タイプがあります。
「JavaScript 高度なプログラミング」の第 1 版、第 2 版、および第 3 版など、一部の書籍ではこの概念が頻繁に使用されています。
最初の版では、5 つのプリミティブ型、つまり Unknown、Null、Boolean、Number、String があると述べました
第 2 版と第 3 版では、単純データ型 (基本データ型とも呼ばれます) として翻訳される単純データ型が考案され、オブジェクトは複合データ型と呼ばれます。
プリミティブ型については、別の古典的な書籍「The Definitive Guide to JavaScript (6th Edition)」の第 3 章でも言及されています
まず、プリミティブ型 (プリミティブ型) とオブジェクト型に分けられます。基本型は、数値、文字列、ブール値、および 2 つの特殊な null と未定義に分けられます。
5 年前、JavaScript に関する本はほとんどありませんでした。これらの 2 冊は、その中の 2 冊であり、大きな影響力を持ち、古典と呼ぶことができました。したがって、多くの JSer がこの影響を受けます。言語の型を基本型 (メタタイプ) とオブジェクト型 (複合型) に分けることも、著者の学習ロジックに沿っていると思います。また、Javaなど他の言語の影響も受けており、同様に基本型(8種類)とオブジェクト型に型が分かれています。
しかし、ECMAScript にはクラスの概念がないのと同じように、いわゆるプリミティブ型はありません (他の言語能力を持つ人々は依然として JavaScript で名詞「クラス」を使用することを好みます)。そこに記載されているのは type で、基本的なタイプとして理解できますが、6 つのタイプがあるはずです。ここでの基本型は、複雑なデータ型であるオブジェクトが含まれているため、Java の基本型でもありません。
すべての書籍が JavaScript の基本型は 5 つだけ (オブジェクトを除く) であると信じているわけではありません。『JavaScript 言語の本質とプログラミングの実践』では、次の 6 つの型があると考えています。
nullは含まれませんが、関数型を追加します。 ああ、いろいろな奇妙な答えがありますね。次に誰かにこの質問をされたらどう答えるべきでしょうか?