JavaScript の高度なプログラミングの基本参照型

JavaScript の高度なプログラミングの基本参照型

序文:

参照値(オブジェクト)は、 Date型、 Function型、 RegExp正規表現型など、特定の参照型のインスタンスオブジェクトです。 JavaScriptには、開発者が使用できるいくつかの一般的な参照型が組み込まれています。

1. 日付

次の 3 つのメソッドは、タイムスタンプをミリ秒単位で返します。

t1 = Date.UTC(2020, 11, 7, 22,14) とします。
t2 = Date.parse("2020/5/23") とします。
t3 = Date.now() とします。


解析によって受け取られるパラメータの形式は次のとおりです。

Date()コンストラクターはさまざまなパラメーターを受け入れることができます。パラメーターなし、タイムスタンプ、またはUTC関数と解析関数で受け入れられるパラメーターを受け入れることができます。

t4 = 新しい日付()
let t5 = new Date(2020, 11, 7) // 月は0から始まります let t6 = new Date("5/23/2020")

Date型には同等の機能が用意されており、関連するAPIを自分で参照することができます。

2. 正規表現

JavaScriptでは正規表現は以下のように表現されます

express = /pattern/flags; とします。


  • g: グローバル モード。最初に一致するコンテンツで終了するのではなく、文字列のコンテンツ全体を検索します。
  • i : 大文字と小文字を区別しません。つまり、一致を検索するときにパターンと文字列の大文字と小文字は無視されます。
  • m: 複数行モード。テキストの行末に達したときに検索が続行されます。
  • u : Unicode モード、Unicode マッチングを有効にします。
  • s : dotAll モード。メタ文字 . が任意の文字 (\n または \r を含む) と一致することを示します。

正規表現をリテラル形式で表現するだけでなく、RegExp コンストラクターを使用して正規表現を作成することもできます。

p1 = /[cb]at/iとする

p2 = new RegExp("[cb]at", "i") とします。

これら2つは同等です。

RegExpオブジェクトには、 exectestメソッドという 2 つの重要なメソッドがあります。

p1 = /[cb]at/iとする
let text = "こんにちは、猫、バット、ニーハオ"

一致 = p1.exec(テキスト)

console.log(一致するインデックス)
console.log(一致する入力)
console.log(matches[0]) //cat


正規表現が一致する場合、返されるmatches Array配列オブジェクトであり、一致しない場合は null を返します。 さらに、 matchesindexinput 2 つの追加属性があります。インデックスは一致の実際の位置です。 input検索する文字列です。 配列内の要素は、実際には正規表現のキャプチャ グループです。グループ化されていない場合は、0 番目の要素が一致する文字列になります。

p1 = /([cb]a(t))/iとする
console.log(matches[0]) //cat
console.log(matches[1]) //cat
console.log(matches[2]) //t

テスト メソッドは、文字列が正規表現に一致するかどうかを判断するブール値を返します。

マッチした = /\d+/g.test("13")
console.log(一致) //true

ここで、 flagのgの機能を説明する必要があります。今は役に立たないように思えますが、次の例を見れば理解できます。

p1 = /[cb]at/giとする
let text = "こんにちは、猫、バット、ニーハオ"
console.log(p1.exec(text)) // ["cat", インデックス: 6, 入力: "hello cat bat nihao", グループ: 未定義]
console.log(p1.exec(text)) //["bat", インデックス: 10, 入力: "hello cat bat nihao", グループ: 未定義]

文字列テキストには、正規表現に一致する場所が実際に 2 つありますが、 execを呼び出すと、 matches配列内の要素は bat ではなく cat になります。 2 回目にexecを実行すると、返されるのは bat です。 g がない場合、何度呼び出しても cat が返されます。最初の一致が見つかった時点でプロセスは終了します。

さらに、文字列には、正規表現をパラメータとして受け入れる多くのメソッドが用意されており、正規表現のマッチング、文字列の置換、指定された文字列の検索、グループ化などに使用できます。

3. オリジナルパッケージタイプ

3 つの参照型BooleanNumberString 、プリミティブ型に対応するラッパー型です。プリミティブ値に対して特定のメソッドを使用すると、プリミティブ値は対応する参照型に自動的にラップされます。たとえば、上記の文字列によって提供されるメソッドは元の値では使用できませんが、 String型では使用できます。 このメカニズムにより、プリミティブ値がオブジェクトの動作を持つことができます。

オリジナルのパッケージタイプには、次のような特徴があります。

s1 = "こんにちは" とします
s1.name = "性別"
console.log(s1.name) //未定義


s1.name undefinedはなぜですか? 2 行目のコードが実行されると、s1 はパッケージ型に変換されます。このコード行が実行されると、この型のオブジェクトが実際にリサイクルされます。すると3行目に別のラッパー型オブジェクトが作成されますが、今回はname属性がないのでundefinedなります。 Stringオブジェクトが明示的に作成されない限り。

s1 = "こんにちは" とします
s1 = 新しい文字列(s1)
s1.name = "性別"
コンソールログ(s1.name) 


Numberの場合、 newを使用するかnewしないかの違い

値を25にする
数値 = 数値(値) とします
obj = 新しい数値(値)

console.log(typeof number) //数値
console.log(typeof obj) //オブジェクト

console.log(number instanceof Number) //false 元の値はどの型のインスタンスオブジェクトでもありません console.log(obj instanceof Number) //true

numberはプリミティブ値であり、 obj Number型のオブジェクトです。

Numberオブジェクトには、値を文字列としてフォーマットし、指定された小数点以下の桁数を保持するために使用されるtoFxiedメソッドがあります。

数値 = 10.007 とする
コンソールログ(num.toFixed(2)) //10.01  


String には文字列を操作するためのメソッドが多数用意されており、例に従ってすべて手動で入力することができます。

4. その他の組み込みオブジェクト

グローバル スコープ内の変数、 evelparseIntisNaNなどのよく使用される個別の関数、およびプリミティブ参照型StringBooleanNumber FunctionArrayのコンストラクターはすべてGlobalプロパティです。しかし、 Globalオブジェクトに明示的にアクセスすることはできません。さらに、 encodeURIencodeURIComponent URL の処理に非常に便利です。

url = "http://www.baidu.com/vue.js"
console.log(encodeURI(url)) //http://www.baidu.com/vue.%20js
console.log(encodeURIComponent(url)) // http%3A%2F%2Fwww.baidu.com%2Fvue.%20js

対応するデコード関数はdecodeURIdecodeURIComponentです。

ブラウザでは、 windowオブジェクトは Global のプロキシ オブジェクトとして機能し、グローバル スコープ内の変数にはwindowオブジェクトを通じてアクセスできます。

var 名 = "zhang"
console.log(ウィンドウ名)
数学オブジェクトconsole.log(Math.max(1,2,3,4)) // 最大値console.log(Math.min(3,3,4)) // 最小値console.log(Math.ceil("1.2")) // 切り上げconsole.log(Math.floor(3.3)) // 切り下げconsole.log(Math.round(3.6)) // 切り上げ

これで、JavaScript の高度なプログラミングにおける基本的な参照型に関するこの記事は終了です。JavaScript の基本的な参照型に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScript オブジェクトの組み込みオブジェクト、値型、参照型の説明
  • JavaScript 参照型の例の詳しい説明 [配列、オブジェクト、厳密モードなど]
  • Javascriptの基本型と参照型に関する個人的な理解
  • JavaScript 参照型 RegExp の基本的な使い方の詳細な説明
  • JavaScript参照型関数インスタンスの詳細な説明
  • JavaScript 参照型の基本パッケージ型例の分析 [ブール値、数値、文字列]
  • JavaScript 参照型 Date の一般的な使用例の分析
  • JavaScript 参照型オブジェクトの一般的な使用例

<<:  html mailto(メール)の実用化について

>>:  MySQL ストアドプロシージャの長所と短所の分析

推薦する

MySQL の大文字と小文字の区別に関する注意

目次MySQLの大文字と小文字の区別はパラメータによって制御されますMySQLの大文字と小文字の区別...

Vueは画像のドラッグと並べ替えを実装します

この記事の例では、画像のドラッグと並べ替えを実装するためのVueの具体的なコードを参考までに共有して...

docker mysqlの起動時に初期化SQLを実行する

1.Mysqlイメージを取得するdocker pull mysql:5.7 2. MySQLイメージ...

MySQL複合インデックスの詳細な研究

複合インデックス (結合インデックスとも呼ばれます) は、複数の列に対して作成されるインデックスです...

ServerSocketのデフォルトIPバインディングの実装プロセスの詳細な説明

開発中にサーバーを起動する必要がある場合、ローカルテストではポートを直接書き込み、実際の環境ではバイ...

Vue ブラウザログアウトの実装例

目次1. beforeunload イベント2. アンロードイベント3. ソースコードプロジェクトの...

Nginx プロキシを使用してフロントエンドのクロスドメイン問題を解決する方法

序文Nginx (「エンジン エックス」と発音) は、リバース プロキシ、ロード バランサ、HTTP...

Docker で ElasticSearch と Kibana をインストールするためのサンプル コード

1. はじめにElasticsearchは現在非常に人気があり、多くの企業が利用しているため、esを...

KVM 仮想マシンのオンライン ホット マイグレーションを実装する方法 (画像とテキスト)

1. KVM仮想マシンの移行方法と注意すべき点KVM 仮想マシンを移行する方法は 2 つあります。...

MySQL主キー命名戦略関連

最近、データライフサイクル管理の詳細を整理していたときに、小さな問題を発見しました。それは、MySQ...

React setStateデータ更新メカニズムの詳細な説明

目次setStateを使用する理由setStateの使用法非同期または同期更新要約するsetStat...

PIP で docker-compose をインストールする際のタイムアウト問題の解決方法

1: インストールコマンドpip install docker-compose例外情報socket....

Docker がポート 2375 を公開し、サーバー攻撃を引き起こす問題と解決策

docker リモート API を学習した学生であれば、ポート 2375 についてよくご存知だと思い...

Axios の二次カプセル化の例 プロジェクトのデモ

1. なぜパッケージングを行うのですか?全体的なコード呼び出し、リクエストの公開処理、パーソナライズ...

MySQL で重複しない携帯電話番号テーブルをバッチ生成する方法のサンプルコード

序文多くの MySQL テスト シナリオでは、テスト用に一部のテスト データを手動で生成する必要があ...