1. TOPTOP
  2. Webサービス
  3. JavaScript
  4. Stringオブジェクトに添字を使って文字列にアクセスはできるがArrayオブジェクトのメソッドは使えない

Stringオブジェクトに添字を使って文字列にアクセスはできるがArrayオブジェクトのメソッドは使えない

string_object_subscript_0

JavaScriptは添字を使って文字列(Stringグローバルオブジェクト)内の個々の文字にアクセスすることができます。

添字を使って文字列と配列にアクセス

文字列に添字を使ってアクセス

const d = "dog";
console.log(d[0]);  // d
console.log(d[1]);  // o
console.log(d[2]);  // g

例えば”dog”という文字列を定数”d”で定義します。このとき定数”d”に0から2までの添字を使うと、それぞれ”d”, “o”, “g”という文字にアクセスすることができます。

配列に添字を使ってアクセス

const c = ["c", "a", "t"];
console.log(c[0]);  // c
console.log(c[1]);  // a
console.log(c[2]);  // t

一方、配列でも個々の要素の値にアクセスすることができます。定数”c”に0から2までの添字を使うと、それぞれ”d”, “o”, “g”という要素の値にアクセスすることができます。

StringオブジェクトにArrayオブジェクトのメソッドは使えない

ただし、注意しなければならないことは”d”はStringオブジェクトであり、”c”はArrayオブジェクトであるということです。”d”では”unshift”, “shift”, “push”, “pop”などの配列用のメソッドを使うことはできません。両者を比較するとこんな感じです。

const c = ["c", "a", "t"];
c.push('s');
console.log(c)  // [ 'c', 'a', 't', 's' ];
const d = "dog";
d.push('s');
console.log(d)  // TypeError: d.push is not a function

前者では文字列の”c”をpushメソッドを配列の3番目に追加することができますが、後者は文字列の最後に”s”を追加することはできません。