# Stringオブジェクト

文字列型で変数を定義する場合、`const message = 'こんにちは'`と定義しますが、`const message = new String('こんにちは')`と`Stringオブジェクト`として定義することができます。

`'こんにちは'`と`new String('こんにちは')`は厳密には同じ値ではないのですが、`'こんにちは'`と定義した場合に、オブジェクトとして定義した場合と同じような挙動をします（内部的な仕組みに関しては、割愛します）。

これは、文字列型だけではなく、数値型や論理型にも同様のことが言えます。

ですので、文字列型で定義されたものは、プロパティやメソッドを持っています。

`文字列.length`にて文字列の長さを取得することができ、`文字列[数値]`にて、前方から指定した`数値`の位置の文字を取得することができます。

<pre class="language-javascript" data-title="index.js◎"><code class="lang-javascript">...
console.log(Math.min(1, 2, 3)); // 最小値1を返却

<strong>const message = 'こんにちは';
</strong><strong>console.log(message.length); // 5
</strong><strong>console.log(message[1]); // ん
</strong></code></pre>

`文字列.includes(文字列1)`では、`文字列`に`文字列1`が含まれている場合にtrueを返却します。

<pre class="language-javascript" data-title="index.js◎"><code class="lang-javascript">...
console.log(message[1]); // ん

<strong>console.log(message.includes('こん')); // true
</strong></code></pre>

`文字列.indexOf(文字列1)`では、`文字列`に`文字列1`が含まれている場合に、その文字が出現するインデックスを取得することができます。

<pre class="language-javascript" data-title="index.js◎"><code class="lang-javascript">...
console.log(message.includes('こん')); // true
<strong>console.log(message.indexOf("ち")); // 3
</strong></code></pre>

`文字列.replace(文字列1, 文字列2)`は、`文字列`に`文字列1`が含まれている場合に、その文字列を`文字列2`に変換します。

<pre class="language-javascript" data-title="index.js◎"><code class="lang-javascript">...
console.log(message.indexOf("ち")); // 3
<strong>console.log(message.replace("ん", "に")); // こににちは
</strong></code></pre>

`文字列.split(文字列1)`は`文字列`を`文字列1`で区切り、配列に変換することができます。

<pre class="language-javascript" data-title="index.js"><code class="lang-javascript">...
<strong>console.log('a,b,c,d'.split(',')); // ['a', 'b', 'c', 'd']
</strong></code></pre>

以上が実務でよく使うメソッドになります。

その他にどういったメソッドがあるか気になる方は、以下サイトを見ていただければと思います。

{% embed url="<https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String>" %}
