String.prototype.at()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022.

at() メソッドは整数値を受け取り、指定したオフセットに位置する 1 つの UTF-16 コード単位からなる新しい文字列を返します。このメソッドでは、正と負の整数を扱うことができます。負の整数の場合は、文字列の最後の文字から前へ数えます。

試してみましょう

構文

js
at(index)

引数

index

返す文字列のインデックス(位置)。負のインデックスを渡した場合、文字列の末尾からの相対位置指定に対応しています。つまり、負の数を使用した場合、文字列の末尾から数えて返す文字を見つけます。

返値

指定した位置にある単一の UTF-16 コード単位からなる文字列を返します。指定された位置が見つからない場合は undefined を返します。

文字列の最後の文字を返す

次の例は、指定した文字列の中で最後に見つかった文字を返す関数です。

js
// 指定された文字列の最後の文字を返す関数
function returnLast(arr) {
  return arr.at(-1);
}

let invoiceRef = "myinvoice01";

console.log(returnLast(invoiceRef)); // '1'

invoiceRef = "myinvoice02";

console.log(returnLast(invoiceRef)); // '2'

メソッドの比較

ここでは、String の最後から 2 番目の文字を選択する複数の方法を比較します。以下に示すどの方法も有効ですが、at() メソッドの簡潔さと読みやすさが際立っています。

js
const myString = "Every green bus drives fast.";

// length プロパティと charAt() メソッドの使用
const lengthWay = myString.charAt(myString.length - 2);
console.log(lengthWay); // 't'

// slice() メソッドの使用
const sliceWay = myString.slice(-2, -1);
console.log(sliceWay); // 't'

// at() メソッドの使用
const atWay = myString.at(-2);
console.log(atWay); // 't'

仕様書

Specification
ECMAScript Language Specification
# sec-string.prototype.at

ブラウザーの互換性

BCD tables only load in the browser

関連情報