この記事では、jsのデータ型とデータ構造の世界を紹介します。

この記事では、jsのデータ型とデータ構造の世界を紹介します。

1. 動的型付けとは何ですか?

  • JavaScript は弱い型付けの動的言語です。
  • 変数の型を事前に宣言する必要はありません。型はプログラム実行中に自動的に決定されます。
  • これは、同じ変数を使用して異なるタイプのデータを保存できることも意味します。
let a; // 最初は型が指定されていません a = 11; // a は数値型になりました a = "二大爷"; // a は文字列型になります a = true; // a はブール型になります

予期しないエラーが発生する可能性があるため、実際のアプリケーションでこれを行うことはお勧めしません。

  • 例えば、あなたの弟が突然女性になり、とても美しくなります(寝るか寝ないか? )
  • 例えば、あなたの親友が突然、とてもハンサムな男性になったとします(行くべきか、行かないべきか? )
  • 例えば、隣人の王さんがあなたの妻になる...(王さん自身が寝取られ男になる?)
  • まとめると、一度データ型が決まったら、安易に改ざんしてはいけません~~

ここに画像の説明を挿入

2. データ型

  • JavaScript には 6 つのデータ型しかないとまだ思っているかもしれません (これは本来の認識です)
  • 最新の ECMAScript 標準では、8 つのデータ型が定義されています

2.1 プリミティブ型 (6 つのプリミティブ型、typeof 演算子を使用してチェック)

  • 未定義: typeof インスタンス === "未定義"
  • ブール値: typeof インスタンス === "boolean"
  • 数値: typeof インスタンス === "number"
  • 文字列: typeof インスタンス === "文字列"
  • BigInt: typeof インスタンス === "bigint" (任意の大きさの整数)
  • シンボル: typeof instance === "symbol"

2.2 null とオブジェクト

  • null: typeof インスタンス === "オブジェクト"
  • typeof インスタンス === "オブジェクト"。
  • 構築されたオブジェクトのインスタンスであり、データ構造としても使用される、特別な非データ構造型: (new Object、new Array、new Map、new Set、new WeakMap、new WeakSet、new Date)、および new キーワードで作成されたほぼすべてのもの。

2.3 typeof演算子の重要なポイント

  • typeof 演算子の唯一の目的は、データ型をチェックすることです。
  • Object から派生した構造体の型をチェックしたい場合、typeof を使用すると常に「object」が返されるため機能しません。
  • オブジェクトの型を確認する適切な方法は、instanceof キーワード (配列とオブジェクトなど) を使用することですが、これにも不正確な点があります (残念ながら、現時点では 100% 準備が整った方法はありません)。

ここに画像の説明を挿入

3. 元の値

3.1 プリミティブ値の基本概念

  • Object を除くすべての型は不変です (値自体は変更できません)。
  • たとえば、C とは異なり、JavaScript の文字列は不変です ( JavaScript の文字列に対する操作は常に新しい文字列を返し、元の文字列は変更されません)。これらのタイプの値を「プリミティブ値」と呼びます。

3.2 各タイプの説明

  • ブール型: true と false の 2 つの値を持つ論理エンティティ
  • NULL型: 値は1つだけ: null、つまり何も意味しない
  • 未定義型: 値が割り当てられていない変数のデフォルト値は未定義になります。
  • 数値型: Java のようにそれ以上の細分化はなく、整数と浮動小数点数の両方が可能です。符号付きの値もいくつかあります: +Infinity、-Infinity、NaN (非数)
  • BigInt 型: 任意の精度の整数を表すことができる JavaScript の基本的な数値型。数値の安全な整数制限を超える大きな整数でも、安全に保存および操作できます。 BigInt は、整数の末尾に n を追加するか、コンストラクターを呼び出すことによって作成されます。

構文: BigInt(value);

value: 作成されたオブジェクトの値。文字列または整数にすることができます

BigInt() はコンストラクターではないため、new 演算子は使用できません。

  • 文字列型: 文字列は不変です。つまり、文字列は一度作成されると変更できません。ただし、元の文字列に対する操作に基づいて新しい文字列を作成することは可能です。

個々の文字を選択するか、String.substr() を使用することで、文字列の部分文字列を取得できます。

2 つの文字列を連結するには、連結演算子 (+) または String.concat() を使用します。

  • シンボルタイプ: 一意かつ変更不可能で、オブジェクトのキー値としても使用できます。
  • オブジェクト タイプ: オブジェクトはプロパティのコレクションとして表示できます。オブジェクトがオブジェクト リテラル構文を使用して定義されると、一連のプロパティが自動的に初期化されます。

プロパティの値は、複雑なデータ構造を持つオブジェクトを含め、任意の型にすることができます。属性はキーによって識別され、その値は文字列またはシンボルになります。

上記は、js データ型とデータ構造の世界にあなたを導くこの記事の詳細な内容です。js データ型とデータ構造の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • js の基本的なデータ型の詳細な説明
  • 8つのJavaScriptデータ型
  • JavaScript の 7 つのデータ型の詳細な説明
  • JSにおけるデータ型の正しい判定方法の例
  • JavaScript データ型変換の詳細な説明 (推奨)
  • JavaScriptのデータ型の最も詳細な説明を見てみましょう

<<:  Windows 2008 タスク プランが bat スクリプトの実行に失敗したときに 0x1 を返す問題の解決方法

>>:  mysql はフィールドコンテンツの一部を置き換え、mysql は関数 replace() を置き換えます。

推薦する

JavaScript PromiseとAsync/Awaitの詳細な説明

目次概要4つの例例1: 誕生日で説明する約束の基本例2: 数字当てゲーム例3: Web APIから国...

MySQLサービスを削除する具体的な方法

MySQLは次のエラーを表示します「コントロール パネル -> 管理ツール -> サービ...

Vueでルーティング権限を動的に設定する主なアイデア

以前、インターネット上で動的ルーティング設定をいくつか見たことがありましたが、現在のプロジェクトとは...

Linux 継続的インテグレーションで Maven を自動的にインストールする方法

Mavenパッケージを解凍する tar xf apache-maven-3.5.4-bin.tar....

Manjaro インストール CUDA 実装チュートリアル分析

昨年末、Thinkpad T450 のデュアルシステムの opensuse を Manjaro に置...

ヘッダーのチェックボックスをテキスト実装コードに変更するための選択テーブルを持つ要素

方法1: テーブル属性を使用する: header-cell-class-name テーブルインターフ...

JavaScript進捗管理の詳しい説明

目次序文質問原理テスト序文プログラムを作成するときに、読み込みの進行状況やアップロードの進行状況など...

alpineをベースにdockerfileで作成したクローラーScrapyイメージの実装

1.アルパインイメージをダウンロードする [root@DockerBrian ~]# docker ...

Linux で ffmpeg をインストールするための詳細なチュートリアル

1. CentOS Linuxにffmpegをインストールする1.ダウンロードして解凍する http...

MySQLのカバーインデックスに関する知識ポイントのまとめ

インデックスにクエリする必要があるすべてのフィールドの値が含まれている(またはカバーしている)場合、...

nginx を使用して 1 つのドメイン名で複数の Laravel プロジェクトを構成する方法の例

背景会社のサブプロジェクトが増えるにつれて、さまざまなサイズのプロジェクトが10個以上になります(バ...

MySQL 8.0.12 の詳細なインストールおよびアンインストール チュートリアル

1. MySQL 8.0.12 バージョンのインストール手順。 1. ダウンロードhttps://d...

Ubuntu でディスク容量不足により MySQL が起動しない場合の解決策

序文最近、データベースのテーブルに 2 つのフィールドを追加しました。その後、ディスク容量不足のよう...

小規模プログラムへのデータキャッシュ機構の応用と実装

ミニプログラムデータキャッシュ関連知識データ キャッシュ: データをキャッシュして、アプレットを終了...