JavaScriptで文字列のプロトタイプに大小文字を入れ替える関数を追加する方法
JavaScriptでは、独自のカスタム関数を定義し、既存の標準データ型(プリミティブ型)に追加することができます。これはライブラリメソッドを作成するのに似ていますが、対象がユーザー定義型ではなく組み込みのデータ型である点が特徴です。
ここでは、String.prototype に対して swapCase() という名前の文字列関数を追加してみましょう。
この関数は新しい文字列を返します。元の文字列に含まれるすべての大文字は小文字へ、小文字は大文字へと入れ替えられます。数字や記号などのアルファベット以外の文字は、そのまま保持されます。
コード例
以下が実際のコードです。
const str = 'ThIS iS A CraZY StRInG';
String.prototype.swapCase = function(){
let res = '';
for(let i = 0; i < this.length; i++){
if(this[i].toLowerCase() === this[i].toUpperCase()){
res += this[i];
continue;
};
if(this[i].toLowerCase() === this[i]){
res += this[i].toUpperCase();
continue;
};
res += this[i].toLowerCase();
};
return res;
};
console.log(str.swapCase());処理の流れ
この実装のポイントは以下の通りです。
- まず各文字に対して
toLowerCase()とtoUpperCase()の結果を比較し、両者が一致する場合(=アルファベット以外の文字)はそのまま出力します。 - 次に、小文字化した結果が元の文字と一致する場合は小文字であるため、大文字に変換して追加します。
- それ以外の場合は大文字であるため、小文字に変換して追加します。
実行結果
コンソールには以下のように出力されます。
tHis Is a cRAzy sTriNg
このように、プロトタイプを拡張することで、標準の文字列オブジェクトにあたかも組み込みメソッドであるかのように独自機能を追加できます。ただし、実際の開発ではグローバルなプロトタイプの変更が他のコードに影響を与える可能性があるため、使用する際は注意が必要です。
-
JavaScriptのImage()オブジェクトとは?使い方とサンプルコードを解説
JavaScriptにおけるImage()オブジェクトは、HTMLの<img>要素を表すオブジェクトです。このオブジェクトを使うことで、JavaScriptから動的に画像を生成し、Webページに追加することができます。Image()コンストラクタには、引数として画像の幅と高さをピクセル単位で指定できます。また、生成した画像オブジェクトのsrcプロパティに画像のURLを設定することで、画像を読み込むことが可能です。Image()オブジェクトの基本的な使い方以下は、JavaScriptでImage()オブジェクトを使用するサンプルコードです。コード例<!DOCTYPE html&
-
JavaScriptオブジェクトの内容を文字列として表示する方法
JavaScriptでオブジェクトの内容を文字列形式で画面に表示したい場合、document.getElementById()でHTML要素を取得し、innerHTMLを使って書き出すのが基本的な方法です。オブジェクトを文字列に変換するには、JSON.stringify()メソッドを活用します。 実装手順 まず、表示先となるHTML要素にIDを設定します。次に、JavaScript側でそのIDを指定して要素を取得し、変換した文字列をinnerHTMLに代入します。 コード例 <!DOCTYPE html> <html lang="ja"> <h