JavaScriptで文字列の特定の位置にある文字の文字コードを取得したい場合、`charCodeAt()`メソッドを使用します。このメソッドは文字列から指定したインデックスの文字のUnicode値を返します。
charCodeAt()メソッドの基本的な使い方
const str = "Hello";
const code = str.charCodeAt(0); // 72 (文字'H'のUnicode値)このメソッドは以下のように使用します:
文字列.charCodeAt(インデックス)インデックスは0から始まり、文字列の先頭から何番目の文字を対象とするかを指定します。
戻り値について
- 0から65535までの整数値を返します
- 指定したインデックスに文字が存在しない場合は`NaN`を返します
具体的な使用例
// 基本的な使用例
const text = "JavaScript";
console.log(text.charCodeAt(0)); // 74 ('J'のUnicode値)
console.log(text.charCodeAt(4)); // 83 ('S'のUnicode値)
// 日本語の文字コード取得
const japanese = "こんにちは";
console.log(japanese.charCodeAt(0)); // 12371 ('こ'のUnicode値)
// 存在しないインデックスを指定
console.log("ABC".charCodeAt(5)); // NaN注意点
1. インデックスは0から始まります
2. 負のインデックスや文字列の長さを超えるインデックスを指定すると`NaN`が返されます
3. 文字列が空の場合も`NaN`が返されます
よくある使用シーン
1. 文字の比較
// 大文字小文字の判定
function isUpperCase(char) {
return char.charCodeAt(0) >= 65 && char.charCodeAt(0) <= 90;
}
console.log(isUpperCase('A')); // true
console.log(isUpperCase('a')); // false2. 文字列の暗号化
// 簡単なシーザー暗号の実装例
function encrypt(text, shift) {
return text.split('').map(char =>
String.fromCharCode(char.charCodeAt(0) + shift)
).join('');
}
console.log(encrypt('HELLO', 1)); // IFMMP関連メソッド
- `String.fromCharCode()`: 文字コードから文字列を生成
- `String.prototype.codePointAt()`: サロゲートペアにも対応した文字コード取得
ブラウザ対応状況
`charCodeAt()`メソッドは古くからあるメソッドで、現代のブラウザはすべてサポートしています:
- Google Chrome
- Firefox
- Safari
- Microsoft Edge
- Internet Explorer
このメソッドを使用する際の互換性の心配はありません。
以上が`charCodeAt()`メソッドの基本的な使い方と主な特徴です。文字コードを扱う処理で頻繁に使用される重要なメソッドの1つですので、ぜひ活用してみてください。