1はじめにプログラミング言語は、自然言語と同様に、現実を記号で表し、それを組み合わせて意味のある文を作ります。プログラミング言語が表現する現実とは、プロセッサの動作、デバイス、メモリなどのマシンのリソースです。無数に存在するプログラミング言語は、それぞれ情報を表現するためのパラダイムを採用しています。抽象的なルールを提供することで、プログラマがアイデアを表現するために必要なコードを少なくすることができます。JavaScriptは、コンピュータのメモリを便利に利用する方法を提供します。プログラミングの概念を使用することで、反復練習の記述が簡単になり、Web開発者の目的には一般的に十分なものとなります。Note緻密なメモリアクセスのためには、専用のメカニズムを使うことも可能ですが、ここで紹介するシンプルなデータの種類は、より一般的な使い方になります。Webアプリケーションにおける典型的な操作は、何らかのJavaScriptの命令によってデータを要求し、それを保存して処理し、最終的にユーザーに提示するというものです。この保存は、JavaScriptでは非常に柔軟で、目的に応じて適切な保存形式が用意されています。定数と変数の宣言データを保持するための定数や変数の宣言は、あらゆるプログラミング言語の基礎となるものです。いう構文で定数や変数に値を割り当てます。左側の定数または変数は、右側の値を受け取ります。定数または変数の名前は、アルファベットまたはアンダースコアで始めなければなりません。言語なので、変数に格納されているデータの型を示す必要はありません。変数の型は、変数に代入された値から推測されます。期待される結果を保証するためには、宣言で特定の属性を指定しておくと便利です。NoteTypeScriptは、JavaScriptにインスパイアされた言語で、低水準言語と同様に、特定のタイプのデータ用に変数を宣言することができます。定数とは、プログラムの起動時に一度だけ割り当てられ、変更されることのない記号のことです。会社名を入れたりするなど、固定値を指定するのに便利です。Webアプリケーションで、リモートサーバから天気情報を受信するクライアントがあるとします。プログラマは、アプリケーションの実行中に変更されることはないので、サーバへのアドレスは一定でなければならないと決めるかもしれません。温度情報は、サーバから新しいデータが届くたびに変化する可能性があります。サーバへの問い合わせの間隔を定数として定義することもでき、プログラムのどの部分からでも問い合わせが可能です。いうメッセージが表示されます。スクリプトの実行中ずっとその値が同じであることを保証します。変数であり、その値が変更可能であるとみなします。明示的に変数を宣言したのと同じです。変数は、関数の外で定義されていますが、関数内からアクセスされていることに注意してください。コードのどの部分からでもアクセスできます。あり、その関数の内部からしかアクセスできません。して宣言された変数のスコープは区切りません。次のようなコードは有効です。変数にアクセスすることができます。定数であれば、同じことは起こりません。いうタイプのエラーメッセージが発行され、スクリプトが停止します。制限があるように見えるかもしれませんが、変数や定数のスコープを制限することで、スクリプト本体と各コードブロックで処理される情報が混同されるのを防ぐことができます。宣言された変数も、中括弧で区切られたブロックによってスコープが制限されます。宣言するかの微妙な違いは他にもありますが、その中でも最も重要なのは、ここで説明するように、変数のスコープに関するものです。値のタイプほとんどの場合、プログラマは変数に格納されているデータの型を気にする必要はありません。型のいずれかで識別するからです。いくつかの操作は、あるデータ型に固有のものであり、無分別に使用するとエラーになることがあります。型が用意されています。プリミティブ型プリミティブ型のインスタンスは、1つの値しか格納できない伝統的な変数に相当します。演算子を使って、変数に格納されている値の型を特定することができます。variable);}このスクリプトは、それぞれのケースでどのようなタイプの変数が使用されたかをコンソール上に表示します。symbol最初の行は、宣言されていない変数の型を見つけようとしていることに気をつけて下さい。これにより、指定された変数は「未定義」であると見なされます。`symbol`型は、最も直感的ではないプリミティブです。その目的は、属性名を定義する必要がない場合に、オブジェクト内にユニークな属性名を提供することです。オブジェクトとは、データ構造の一種で次に説明します。構造型プリミティブ型は、簡単なルーチンを書くのには十分ですが、複雑なアプリケーションでは、プリミティブ型ばかりを使うことには欠点があります。E-コマースのアプリケーションでは、プリミティブ型の変数だけを使って、アイテムのリストとそれに対応する値を格納する方法を見つけなければならないので、書くのが非常に難しくなります。構造型は、同じ性質の情報を1つの変数にまとめる作業を簡単にします。型の1つの変数に格納することができます。'Eggs'];この例では、項目の配列を角括弧で囲んでいます。この例では、配列に3つのリテラル文字列値を入力しているため、一重引用符を使用しています。変数を配列の項目として使用することもできますが、その場合は引用符を使用せずに指定する必要があります。プロパティで調べることができます。メソッドを使用します。始まる数値インデックスでアクセスできます。console.log(cart[0]);console.log(cart[3]);コンソールに表示される出力は次のようになります。配列から最後の要素を削除することができます。配列に格納される値は、同じ型である必要はありません。各アイテムの横に数量を格納することも可能です。先ほどの例のような買い物リストは、次のように作ることができます。cart[quantity]);このコードを実行した後にコンソールに表示される出力は次のとおりです。4すでにお気づきかもしれませんが、アイテムの名前とそれぞれの数量を1つの配列にまとめることは、良いアイデアではないかもしれません。それらの関係はデータ構造の中で明示されておらず、(人為的な)エラーの影響を非常に受けやすいからです。名前に配列を使い、数量に別の配列を使ったとしても、リストの整合性を維持するには同じような注意が必要で、あまり生産的ではありません。使用するのが最善の方法です。JavaScriptでは、オブジェクト型のデータ構造により、変数にプロパティをバインドすることができます。配列とは異なり、オブジェクトを構成する要素の順序は固定されていません。いうプロパティを持つオブジェクトになります。)を使ってオブジェクトを定義し、各プロパティと値のペアをコロンで区切り、プロパティをカンマで区切っています。いう形式でアクセスでき、読み取ることも、新しい値を代入することもできます。このコードの実行後にコンソールに表示される出力は次のとおりです。1最後に、アイテムを表す各オブジェクトをショッピングリストの配列に含めることができます。これは、リストを作成する際に直接行うことができます。}];先ほどと同様に、アイテムを表す新しいオブジェクトを後から配列に追加することができます。});リストのアイテムは、インデックスとプロパティ名でアクセスできるようになりました。cart[2].quantity);このコードを実行した後にコンソールに表示される出力は次のとおりです。12データ構造を利用することで、プログラマはコードをより整理することができ、原作者やチーム内の他のプログラマによるメンテナンスが容易になります。JavaScriptの関数からの出力の多くは構造型であり、プログラマはこれを適切に処理する必要があります。演算子ここまでは、新しく作成した変数に値を代入する方法だけを見てきました。単純なことですが、どんなプログラムでも、変数の値に対して他にもいくつかの操作を行います。ほとんどの演算子は、算術演算を目的としています。加算演算子を使うだけです。スニペット内のプラス記号の役割を混同しないでください。文では、2つの文字列を結合するのにプラス記号を使います。item.quantity);このコードを実行した後にコンソールに表示される出力は次のとおりです。格納されていた値が加算演算のオペランドとして使用されることに注意してください。値は演算結果で更新されます。このように対象変数の現在の値を使った算術演算はよくあることなので、同じ演算を簡略化して書くことができる省略演算子があります。1;その他の基本的な操作にも、同等の省略可能な演算子があります。