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

推薦する

nginx パニック問題の解決方法の詳細な説明

nginx パニック問題に関しては、まず nginx の起動プロセス中に、マスター プロセスが構成フ...

初心者のための HTML コーディングガイドライン 30 選

1. HTMLタグは常に閉じる前のページのソース コードでは、次のような記述がよく見られます。 &l...

CSS3は、ズームと回転を実現するためにscale()とrotate()を使用します。

1. scale() メソッドズームとは「縮小」と「拡大」を意味します。 CSS3 では、scal...

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

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

HTML で点線の境界線を設定する方法

CSSスタイルとHTMLタグ要素を使用するさまざまな HTML タグに点線の境界線を追加するために、...

HTMLフローティングプロンプトボックス機能の実装コード

一般的なフォーム プロンプトは常にフォームのスペースを占有し、フォームが長くなったり広くなったりして...

Vueコンポーネントの7つの通信方法についての深い理解

目次1. props/$emit導入コードサンプル2.Vスロット導入コードサンプル3.$refs/ ...

ミニプログラム録画機能の実装

序文ミニプログラムを開発する過程では、録音機能を実装し、録音を再生し、録音をサーバーにアップロードす...

HTML フォームタグチュートリアル (4):

ここで、次のような項目をフォームに追加したいとします: 現在いる都市を参照します。ここで私たちが話し...

MySQL の異なるテーブル間でフィールドをコピーする

場合によっては、フィールドから別の新しいフィールドにデータの列全体をコピーする必要があります。これは...

MySQL 5.7.16 ZIP パッケージのインストールと設定のチュートリアル

この記事では、MySQL 5.7.16 ZIPパッケージのインストールと設定のチュートリアルを参考ま...

Mac OS 10.11 での MySQL 5.7.12 のインストールと設定のチュートリアル

Mac OS 10.11 に MySQL をインストールして設定する方法を、主に写真を使って手順を簡...

Linux プラットフォームでの Zabbix エージェントのインストールと設定方法

ここでは、Linux プラットフォームでの Zabbix エージェントのインストールと構成について簡...