この記事では、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() を置き換えます。

推薦する

VMware Workstation 14 Pro(仮想マシン)にシステムをインストールする方法の詳細な説明

この記事では、VMware Workstation 14 Pro (仮想マシン) にシステムをインス...

Ansibleを使用してTomcatをバッチでデプロイする方法

1.1 ディレクトリ構造の構築この操作は、nginx+mysql+tomcat+dbのディレクトリ構...

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

目次1. 動的型付けとは何ですか? 2. データ型2.1 プリミティブ型 (6 つのプリミティブ型、...

MySQL 5.1 のパスワードを変更し、MySQL データベースにリモートでログインする方法

mysql ユーザーを作成し、承認します。形式: 「ユーザー パスワード」で識別されるユーザー@ログ...

Mac MySQL のルートパスワードをリセットするチュートリアル

免責事項:このパスワード リセット方法は、Homebrew によってインストールされた MySQL ...

SQL ROW_NUMBER() および OVER() メソッドのケーススタディ

構文フォーマット: row_number() over(partition by grouping ...

Vueはパーセンテージバー効果を実現します

この記事では、パーセンテージバーを実現するためのVueの具体的なコードを参考までに共有します。具体的...

HTML ヘッドタグの詳細な紹介

HTML のヘッド部分には、ブラウザによる Web ページのレンダリングや SEO などに関連するタ...

MySQL 同期遅延が発生したときに Seconds_Behind_Master が 0 のままになる理由

目次問題の説明原理分析問題分析拡大する総括する問題の説明ユーザーはプライマリ データベースに対して変...

MySQLクエリで大文字と小文字を区別しない問題を解決する方法

質問最近、SSH フレームワークを使用して実用的なプロジェクトを完了していたときに、長い間悩まされて...

CocosCreator でレイヤー管理に常駐ノードを使用する方法

CocosCreator バージョン: 2.3.4ほとんどのゲームにはレイヤー管理機能があり、例えば...

Docker ベースの MySQL マスタースレーブ レプリケーションを実装する方法

序文MySQL マスター/スレーブ レプリケーションは、アプリケーションの高パフォーマンスと高可用性...

Xtrabackup を使用して MySQL をバックアップおよび復元する方法

目次1. バックアップ1.1 万全の準備1.2 追加の準備2 バックアップとリカバリ2.1 データの...

Vue プロジェクトにインターフェース リスニング マスクを追加する方法

1. 事業背景マスク レイヤーを使用してユーザーの異常な操作を遮断する方法は、フロントエンドでよく使...

VMware ワークステーションの仮想マシンの互換性の問題に対する解決策

VMware ワークステーションの仮想マシンの互換性の問題を解決するにはどうすればよいですか?ノート...