JS ES 新機能テンプレート文字列

JS ES 新機能テンプレート文字列

1. テンプレート文字列とは何ですか?

テンプレートTemplate String文字列の拡張バージョンであり、Spectrum 文字列内の二重引用符と一重引用符をバックティック (```) を使用して置き換えます。通常の文字列として使用することも、複数行の文字列を定義したり、文字列に変数を埋め込んだりするために使用することもできます。

一般的な使用法は次のとおりです。

// ` 記号で囲まれた文字列はテンプレート文字列と呼ばれます。let str = `this is str`
console.log(typeof str, str); //文字列これはstrです

2. 複数行のテンプレート文字列

ECMAScript 2015で提供されるテンプレート文字列と通常の文字列の違いは、テンプレート文字列内のスペース、インデント、改行がすべて保持されることです。

サンプルコードは次のとおりです。

str = `これ 
      str` です
console.log(typeof str, str);
/*
  これを文字列にする 
      はstr
*/


2.1 式付きテンプレート文字列

テンプレート文字列は埋め込み式をサポートします。構文構造は次のとおりです。

`${式}`


サンプルコードは次のとおりです。

str1 = `これはstr1です`とします
str2 = `これはstr2です`とします
// 式を ${} に書き込むだけです。let and = `${str1} and ${str2}`
console.log(and); // これは str1 で、これは str2 です


3. タグ付きテンプレート文字列

テンプレート文字列の機能は上記に限定されません。その後に、テンプレート文字列を処理するために呼び出される関数の名前が続く場合があります。これはタグ付きtagged template関数と呼ばれます。

str = 'str' とします
console.log `これは ${str} です`;
// console.log(['this is ', ''], str); と同等


タグ テンプレートは実際にはテンプレートではなく、関数呼び出しの特別な形式です。 「ラベル」は関数を参照し、それに続くテンプレート文字列はそのパラメータです。

4. 生の文字列

タグ関数の最初の引数には、特殊文字を置き換えずにテンプレート文字列の元の文字列にアクセスするために使用できる特別な属性rawあります。

サンプルコードは次のとおりです。

/*
  生の文字列は、タグ付きテンプレート文字列で使用されます。関数の最初のパラメータには、文字列の生の文字列を取得できる raw 属性があります。
  * いわゆる元の文字列は、テンプレート文字列が定義されたときの内容を指し、処理後の内容ではありません*/
関数タグ(文字列) {
  コンソールログ(文字列.raw[0]);
}
タグ `文字列テスト 行 1 \n 文字列テスト 行 2` // 文字列テスト 行 1 \n 文字列テスト 行 2


さらに、 String.raw()メソッドを使用して生の文字列を生成することは、デフォルトのテンプレート関数と文字列連結を使用して作成することと同じです。

サンプルコードは次のとおりです。

str = String.raw `Hi\n${2+3}!` とします。
// 、Hi の後の文字は改行文字ではなく、\ と n は 2 つの異なる文字です console.log(str); // Hi\n5!


5.文字列が含まれているかどうかを判定する

5.1 include() メソッド

includes()メソッドは、文字列が別の文字列に含まれているかどうかを判定し、判定結果に基づいてtrueまたはfalseを返します。

構文構造は次のとおりです。

str.includes(検索文字列[, 位置])


パラメータの説明:

  • searchString : この文字列内で検索する文字列。
  • position : (オプション) 現在の文字列内で部分文字列の検索を開始するインデックス位置。デフォルト値は 0 です。

include() メソッドでは大文字と小文字が区別されることに注意してください。

サンプルコードは次のとおりです。

str = 'abcdef' とします。
console.log(str.includes('c')); // 真
console.log(str.includes('d')); // 真
console.log(str.includes('z')); // 偽
console.log(str.includes('A')); // 偽


ECMAScript 2015で提供されるincludes()メソッドは大文字と小文字を区別します。これを大文字と小文字を区別しないように拡張しました。

サンプルコードは次のとおりです。

String.prototype.MyIncludes = 関数 (searchStr, インデックス = 0) {
  // 判定対象となる文字列をすべて小文字に変更する let str = this.toLowerCase()
  // 渡された文字列を小文字に変更します。searchStr = searchStr.toLowerCase();
  str.includes(searchStr, index) を返します
}
str = 'abcdef' とします。
console.log(str.MyIncludes('c')); // 真
console.log(str.MyIncludes('d')); // 真
console.log(str.MyIncludes('z')); // 偽
console.log(str.MyIncludes('A')); // 真


5.2startsWith() メソッド

startsWith()メソッドは、現在の文字列が別の指定された部分文字列で始まるかどうかを判定し、判定結果に基づいてtrueまたはfalseを返すために使用されます。

構文構造は次のとおりです。

str.startsWith(検索文字列[, 位置])


パラメータの説明:

  • searchString : この文字列内で検索する文字列。
  • position : (オプション) 現在の文字列内で部分文字列の検索を開始するインデックス位置。デフォルト値は 0 です。

startsWith() メソッドでは大文字と小文字が区別されることに注意してください。

サンプルコードは次のとおりです。

str = 'abcdef' とします。

/*
  * startsWith() メソッドは、現在の文字列が別の指定された部分文字列で始まるかどうかを判定し、判定結果に基づいて true または false を返すために使用されます。
  * str.startsWith(検索文字列[, 位置])
    パラメータの説明 searchString: この文字列内で検索される文字列。 
      position: (オプション) 現在の文字列内で部分文字列の検索を開始するインデックス位置。デフォルト値は 0 です。
  !startsWith() メソッドでは大文字と小文字が区別されることに注意してください。
*/
console.log(str.startsWith('a')); // 真
console.log(str.startsWith('c', 2)); // 真
console.log(str.startsWith('c')); // フラッシュ


5.3 endsWith() メソッド

endsWith()メソッドは、現在の文字列が別の指定された部分文字列で「終了」するかどうかを判定し、判定結果に基づいてtrueまたはfalseを返すために使用されます。

構文構造は次のとおりです。

str.endsWith(検索文字列[, 位置])


パラメータの説明:

  • searchString : この文字列内で検索する文字列。
  • position : (オプション) 現在の文字列内で部分文字列の検索を開始するインデックス位置。デフォルト値は 0 です。

endsWith() メソッドでは大文字と小文字が区別されることに注意してください。

サンプルコードは次のとおりです。

str = 'abcdef' とします。

console.log(str.endsWith('f')); // 真
console.log(str.endsWith('c', 3)); // 真
console.log(str.endsWith('c')); // フラッシュ


次の 2 つのメソッドは、大文字と小文字を区別しないメソッドを独自に拡張できます。

JS ES テンプレート文字列の新機能に関するこの記事はこれで終わりです。より関連性の高い ES テンプレート文字列コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScript ES6 のテンプレート文字列の詳細な説明

<<:  IntelliJ IDEA に Docker プラグインをインストールする詳細な手順 (2018 バージョン)

>>:  Google Web Fonts でウェブサイトに無制限のフォントを追加

推薦する

HTML における rel="nofollow" の役割と rel 属性の使用を分析する

リンクに rel="nofollow" 属性を追加すると、検索エンジンにこの接続...

CentOS7 に YUM 経由で MySQL 5.7 をインストールする詳細な手順

1. インストールパッケージを保存する場所に移動しますcd /home/lnmp 2. MySQL ...

Zabbix でフィルターを使用して監視を実装する方法

最近、監視機器の作業をしていたとき、ポートがダウンしているというアラームが常に出ていました。データを...

JavaScriptにおけるPromiseの使い方と注意点について(推奨)

1. 約束の説明Promise は、非同期操作の最終状態 (失敗または正常完了) とその結果の値を...

Linux システムに Spring Boot アプリケーションをインストールするための詳細なチュートリアル

Unix/Linux サービスsystemd サービス操作プロセス1. JDKがインストールされたC...

uniapp 要素ノードスタイルの動的変更の詳細な説明

目次1. スタイル属性をバインドして変更するhtml:対応するjs:達成された効果:次に、refを使...

ES6 における Object.assign() の使い方の詳細な説明

目次2. 目的2.1 オブジェクトにプロパティを追加する2.3 オブジェクトの複製2.4 複数のオブ...

インターフェースなしで Centos7 に JDK と Tomcat をデプロイするチュートリアル

1. xshell6をインストールする2. サーバー接続を作成し、ユーザー名とパスワードを入力します...

HTML 要素 (タグ) とその使用法

a : ハイパーリンクの開始位置または宛先位置を示します。頭字語: 単語の最初の文字からなる略語を示...

Vue で Alibaba のアイコンフォント ベクター アイコンを使用する方法について

インターネット上には多くのインポート方法があり、公式も3つのインポート方法を提供していますが、インポ...

MySQL における一般的なランキングの問題をいくつかまとめます

序文:一部のアプリケーション シナリオでは、成績や年齢によるランキングなど、ランキングの問題が発生す...

vue3+electron12+dll 開発のためのクライアント構成の詳細な説明

目次リポジトリソースを変更する起動するvue-devtoolsを置き換える予防ボーダーレスウィンドウ...

GoのDockerデプロイメント用の基本イメージ2つの実装

1. golang:最新のベースイメージ mkdir gotest タッチメイン.go Docker...

MySQL で主キーと ROWID を使用する際の落とし穴の概要

序文MySQL の rowid の概念については聞いたことがあるかもしれませんが、テストや実践が難し...

MySQLのタイムゾーンを表示および設定する方法

1. データベースのタイムゾーンを確認する '%time_zone' のような変数を...