文字列の長さを取得する

文字列の長さを取得します。

Program

文字列であれば、String.length プロパティを参照するとよい

var s = "1234abde";
console.log(s.length); // → 8

String型以外でもlengthは持っているし、数値やnullやundefinedはlengthを持っていない。

var a = [1, 2, 3 ,4 ,5];
a.length; // 5
"abc".length; // 3
"".length; // 0
123.length; // Uncaught SyntaxError: Invalid or unexpected token
null.length; // Uncaught TypeError: Cannot read property 'length' of null
undefined.length; // Uncaught TypeError: Cannot read property 'length' of undefined

なんでもStringに変換すると、以下のようになり、思わぬ結果になることもある。

String(null); // "null"
String(null).length; // → "null".length → 4
String(undefined); // "undefined"
String(undefined).length; // → "undefined".length → 9

文字列の長さを返す関数を作るとしたら、lengthプロパティを持っているかどうかを利用したり、String型かどうかを見るなどする必要がある。

function nagasa(s)
{
    if (typeof s == "string") {
        return s.length;
    } else {
        return -1;
    }
}

Demo

結果:

Memo

Unicodeのサロゲートペアと呼ばれる種類の文字は、1文字といえば1文字なのだが、lengthは2が返るので注意。

"あいうえ🍔".length; // 6
'吉野家'.length; // 3
'𠮷野家'.length // 4

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です