JavaScriptで文字列の長さを取得する方法について書いています。
文字列の長さを取得するときには、lengthプロパティにアクセスすると良いです。
lengthで文字数を取得する
文字列の入っている変数から、lengthプロパティにアクセスすることで、文字数を取得することができます。
例えば、下記のように取得することができます。
let text = "hello"
let textLength = text.length
console.log(textLength) // 5
最初にtext
変数に「hello
」を代入しています。
次の処理で、text
変数のlengthプロパティにアクセスしています。
これで、文字列の長さが取得できます。
textLength
変数に結果を代入して、最後に確認すると「5」が出力されました。
このように変数に入っている文字列の長さを取得することができます。
全角の文字数を取得する
全角の文字数もlengthプロパティで取得することができます。
let apple = "りんご"
let appleLength = apple.length
console.log(appleLength) // 3
apple
変数に「りんご
」という文字列を代入しました。
次の処理で、lengthプロパティから文字数を取得しています。
取得した文字数をappleLength
変数に代入して出力すると、「3」となりました。
このように全角でも文字数を取得することができます。
正確に取得できない文字もある
絵文字などは、正確に文字数を取得することができません。
let emoji = "😀😀😀"
let emojiLength = emoji.length
console.log(emojiLength) // 6
emoji
変数に絵文字を3つ入れています。
次の処理で、lengthプロパティを使っています。
ですが、絵文字の場合はひとつが「2」で数えられて「6」となってしまいます。
特殊な文字をカウントするときには気をつけましょう。
lengthを使ったサンプル4選
lengthプロパティを使ったサンプルを4つ書きました。
数値のとき
数値が入っている変数からlengthプロパティを呼び出したときです。
let text = 999
console.log(text.length) // undefined
lengthプロパティを呼び出すと、undefinedが返ってきました。
空文字のとき
空文字からlengthプロパティを呼び出すと「0」が返ってきました。
let text = ""
console.log(text.length) // 0
undefinedのとき
undefinedが入っている変数からlengthプロパティを呼び出すとエラーになります。
let text = undefined
console.log(text.length)
text
変数にundefinedが入っていて、その次の処理でlengthプロパティにアクセスしています。
この処理を実行すると、下記のようにエラーになります。
TypeError: Cannot read property 'length' of undefined
nullのとき
nullが入っている変数からlengthプロパティを呼び出した時もエラーになります。
let text = null
console.log(text.length)
text
変数にnullが入っていて、そこからlengthプロパティにアクセスしています。
この処理を実行すると、下記のようにエラーになります。
TypeError: Cannot read property 'length' of null
文字列の長さを取得する方法まとめ
今回はJavaScriptで文字列の長さを取得する方法について書きました。
記事の内容をまとめると、下記のようになります。
・全角の文字数も取得できるが、一部の文字は正常に動作しない
また、それぞれの値が入った変数からlengthにアクセスした結果は下記のようになります。
値 | 例 | 結果 |
---|---|---|
数値 | text = 999 console.log(text.length) |
undefined |
空文字 | text = “” console.log(text.length) |
0 |
undefined | text = undefined console.log(text.length) |
エラー |
null | text = null console.log(text.length) |
エラー |
undefined・nullが入る可能性がある場合には、先にチェックしておいた方が良さそうです。
コメント