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

推薦する

CSS 背景画像を設定するための 6 つの興味深いヒント

background-image は、おそらくすべてのフロントエンド開発者がキャリアの中で少なくとも...

vue+echartsチャートの使用に関する問題記録

序文echarts は私が最もよく使用するチャート作成ツールであり、非常に完全なエコシステムとコンテ...

EChartsマウスイベント処理方法の詳細な説明

イベントとは、クリック、マウスオーバー、ページの読み込み後にトリガーされる読み込みイベントなど、ユー...

MySQLのレプリケーションとチューニングの原則と方法を分析する

1. はじめにMySQL にはレプリケーション ソリューションが付属しており、次のような利点がありま...

MySQL 8.0.12 のインストールと使用方法のチュートリアル

MySQL 8.0.12のインストールと使用のチュートリアルを録画しました。ウィンドウズまず、公式ウ...

Mac でソースコードから MySQL 5.7.17 をコンパイルしてインストールするチュートリアル

1. ダウンロードして解凍します: /Users/xiechunping/Softwares/mys...

Winにmysqlをインストールする詳細な手順

この記事では、参考までにWinにmysqlをインストールする詳細な手順を紹介します。具体的な内容は次...

HTMLページがincludeを使用してphpファイルをインポートした後に余分な空白行があります

インターネットで見つけた方法は効果的ですinclude によって導入されたフッター ファイルとヘッダ...

Windows 10 に Linux サブシステムをインストールする 2 つの方法 (画像とテキスト付き)

Windows 10 は Linux サブシステムをサポートするようになり、面倒なデュアル システ...

JavaScript を使用して動的に生成されるテーブルの詳細な説明

*ページを作成する: 2つの入力ボックスとボタン*コードと手順/* 1. 入力行と列の値を取得する2...

Vuex はシンプルなショッピングカート機能を実装します

この記事の例では、ショッピングカート機能を実装するためのvuexの具体的なコードを参考までに共有して...

jsのイベントオブジェクトを深く理解しましょう

JS でよく使用されるイベントは次の通りです。ページイベント: load;フォーカス イベント: フ...

ブラウザは関連するHTTPヘッダーをキャッシュし、HTTPリクエストの数を最小限に抑えます。

最近、Yahoo の 34 の黄金律を読み、ウェブサイトのパフォーマンスを最適化する方法を学びました...

Linux システムでの CPU 使用率が高い場合のトラブルシューティングのアイデアと解決策

序文Linux 運用保守エンジニアとして、日々の業務の中で Linux サーバーの CPU 負荷が ...

zk+kafka+storm クラスターの docker-compose デプロイメントの実装

クラスターの展開の概要172.22.12.20 172.22.12.21 172.22.12.22 ...