文字列の長さを取得します。
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