【15.1 文字列を作成する】
・ダブルクォートとシングルクォートに意味的な違いはJavaScriptにはない。
・ES2015より、テンプレートリテラル(バッククォート`)が追加された。
【15.2 エスケープシーケンス】
エスケープシーケンス | 意味 |
---|---|
\' | シングルクォート |
\" | ダブルクォート |
\\ | バックスラッシュ |
\n | 改行 |
\t | タブ |
\uXXXX | Code Unit(\uと4桁のHexDigit) |
\u{X} | Code Point(\u{}のカッコ中にHexDigit) |
【15.4 文字へのアクセス】
const str = "文字列";とした場合、str[0]、str[1]、etc...というアクセスが可能である。
インデックスの値は、0以上2^53 - 1未満の整数が指定可能である。
【15.5 文字列とは】
・JavaScript(ECMA Script)は文字コードとして、Unicodeを採用し、文字をエンコードする方式としてUTF-16を採用している。
・String#charCodeAtメソッドで、文字列の指定インデックスのCode Unitを整数で返せる。
const str ="アオイ"; console.log(str.charCodeAt(0).toString(16)); // "30a2"
・Code Unitをhex値から文字列へと変換するにはString.fromCharCodeメソッドを使う。
const str = String.fromCharCode( 0x30a2, // ア のCode Unit 0x30aa, // オ のCode Unit 0x30a4 // イ のCode Unit ); console.log(str); // アオイ
・ECMAScriptの内部表現としてUTF-16を用いているだけで、JavaScriptファイル自体のエンコードは、UTF-16以外の文字コードであっても問題ない。
【15.6 文字列の分解と結合】
const str1 = "赤・青・緑".split("・"); console.log(str1); // ["赤", "青", "緑"] const str2 = "赤・青・緑".split("・").join("、"); console.log(str2); // "赤、青、緑" const str3 = "a b c d".split(/\s+/); console.log(str3); // ["a", "b", "c", "d"]
【15.9 文字列の一部を取得】
・sliceメソッドもsubstringメソッドも非破壊的であり、どちらを利用するかはほぼ好みの問題
const str = "ABCDE"; console.log(str.slice(1)); // "BCDE" console.log(str.slice(1, 5)); // "BCDE" console.log(str.slice(-1)); // "E" console.log(str.slice(1, 4)); // "BCD" console.log(str.slice(4, 1)); // "" (第一引数 > 第二引数の場合は常に空文字列を返却) console.log(str.substring(1)); // "BCDE" console.log(str.substring(1, 5)); // "BCDE" console.log(str.substring(-1)); // "ABCDE" (マイナスを指定すると0として処理) console.log(str.substring(4, 1)); // "BCD" (第一引数 > 第二引数の場合、引数を反転させて処理[str.substring(1, 4)と等価])
・indexOfメソッドと扱うのもよくやる
const url = "https://example.com?param1"; const indexOfQuery = url.indexOf("?"); const queryString = url.slice(indexOfQuery); console.log(QueryString); // "?param=1"
【15.10 文字列の検索】
const str = "にわにはにわにわとりがいる"; console.log(str.indexOf("にわ")); // 先頭インデックスを返すため0 console.log(str.lastIndexOf("にわ")); // // 末尾のヒットした際の先頭文字のインデックスを返すため6(7文字目) console.log(str.indexOf("さんわ")); // 指定した文字列が見つからない場合は-1
[真偽値の取得]
・String#startsWith(検索文字列):検索文字列が先頭に含むかの真偽値を返す
・String#endsWith(検索文字列):検索文字列が末尾に含むかの真偽値を返す
・String#includes(検索文字列):検索文字列を含むかの真偽値を返す
【15.11 正規表現オブジェクト】
[生成方法]
・const patternA = /パターン/フラグ; // 正規表現リテラルで生成
・const patternB = new RegExp("パターン", "フラグ"); //RegExpコンストラクタで生成
[正規表現リテラルとRegExpコンストラクタで生成した場合の違い]
・正規表現リテラルは静的なパターンの場合に利用する
・RegExpは動的にパターンが変わる場合に利用する
JavaScript Primer 迷わないための入門書 (アスキードワンゴ)
- 作者:azu,Suguru Inatomi
- 発売日: 2020/06/10
- メディア: Kindle版