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 ストアドプロシージャの長所と短所の分析

推薦する

ユーザーがフォームを繰り返し送信するのを防ぐ方法の概要

重複したフォーム送信は、マルチユーザー Web アプリケーションで最も一般的で厄介な問題です。重複送...

Docker Swarm サービス オーケストレーション コマンドの詳細な説明

1. はじめにDocker には、タスクを構成する複数の Docker コンテナをオーケストレーショ...

Baotaパネルを再起動すると、「-ModuleNotFoundError: No module named 'geventwebsocket'」というメッセージが表示されます。

背景:サーバーがFlaskプロジェクトをデプロイし、python3をインストールしたため、再起動時に...

SELinux 入門

カーネル 2.6 の時代には、アクセス制御セキュリティ ポリシーのメカニズムを提供するために新しいセ...

jsはショッピングウェブサイトの商品の拡大鏡効果を実現します

この記事では、ショッピングサイトの商品の拡大鏡効果を実現するためのjsの具体的なコードを紹介します。...

Linux exa コマンド (ls よりも優れたファイル表示エクスペリエンス)

インストールREADMEに従ってインストールしてくださいドキュメントには、exa は Rust で実...

Ajax jQueryはページ上のdivの更新効果を実現します

元のコードは次のとおりです。 <div class='コントロールグループ'&...

MySQL マルチバージョン同時実行制御 MVCC の基本原理の分析

目次1 トランザクションの同時実行で発生する問題1.1 ダーティリード1.2 繰り返し不可能な読み取...

Linux (Ubuntu 18.04) に Anaconda をインストールする詳細な手順

Anaconda は、大規模なデータ処理、予測分析、科学計算のための最も人気のある Python デ...

MySQL で '%' を含むフィールドをクエリする方法の詳細な説明 (ESCAPE の使用法)

SQLのlike文では、例えば SELECT * FROM user WHERE username...

Mac ノードの削除と再インストールのケーススタディ

Macノードの削除と再インストール消去 ノード -v sudo npm アンインストール npm -...

JavaScript でよく使われる 3 つの Web エフェクトの詳細な説明

目次1要素オフセットシリーズ1.1 オフセットの概要1.2 オフセットとスタイルの違い視覚領域クライ...

MySQL の「特殊キーが長すぎます」の解決策

目次解決策1解決策2テーブルを作成するときに、興味深い問題に遭遇しました。「指定されたキーが長すぎま...

MySQL 増分バックアップとブレークポイントリカバリスクリプトの例

導入増分バックアップとは、完全バックアップまたは最後の増分バックアップの後、後続の各バックアップでは...