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 インデックスの詳細な紹介と正しい使用方法1. はじめに:インデックスはクエリ速度に重大な...

Dockerを使用してDjango+MySQL8開発環境をデプロイする方法の詳細な説明

しばらく前にシステムを再インストールしましたが、バックアップを取っていなかったので、コンピューター上...

自動行折り返し機能付き CSS Flex レイアウトのサンプル コード

フレックス コンテナーを作成するには、要素に display: flex プロパティを追加するだけで...

VUEはタイムライン再生コンポーネントを実装します

この記事の例では、タイムライン再生コンポーネントを実装するためのVUEの具体的なコードを参考までに共...

MySQL 8.0.22 のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.22のインストールと設定について記録します。具体的な内容は以下のとお...

Dockerコマンドの学習を1つの記事にまとめる

目次導入ミラーリポジトリログイン引く押す検索ローカル画像管理画像rmiタグ建てる歴史保存負荷輸入コン...

LinuxスレッドのPID(TID、LWP)を取得するいくつかの方法の詳細な説明

Linux C/C++ では、スレッド レベルの操作は通常、pthread ライブラリを通じて実行さ...

HTML シンプルショッピング数量アプレット

この記事では、参考までにシンプルなHTMLショッピング数量アプレットを紹介します。具体的な内容は次の...

ろうそくを溶かす(水滴)サンプルコードを実現する純粋な CSS

成果を達成する実装のアイデアフィルターのコントラストとぼかしを利用して溶ける効果を実現します。親要素...

Windows 64 ビットに MySQL を再インストールするチュートリアル (Zip バージョン、解凍バージョンの MySQL インストール)

MySQLをアンインストールする1. コントロールパネルで、MySQLのすべてのコンポーネントをア...

MySQL の悲観的ロックと楽観的ロックの理解と応用分析

この記事では、例を使用して MySQL の悲観的ロックと楽観的ロックについて説明します。ご参考までに...

スクロールバーの美化効果を実現するための CSS3 のサンプル コード

具体的なコードは次のとおりです。 /*スクロールバーの幅*/ ::-webkit-スクロールバー{ ...

React 非親子コンポーネントパラメータ渡しのサンプルコード

React は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。 ...

Doubanウェブサイトのウェブサイトコンテンツに小さな変更を加える方法

<br />読みやすさはウェブサイトにとって非常に重要な部分であり、ウェブサイトの核心と...

ReactのEffectListの簡単な分析

目次EffectList コレクション最初のレンダリング時のEffectList EffectLis...