문자열 length
속성 사용법
문자열에서 length
속성은
문자열에 포함된 문자의 개수를 숫자로 반환합니다. 빈 문자열은 length
가 0
입니다.
구문
string.length
여기서 string
은 길이를 구하려는 주어진 문자열을 말합니다.
예제
let x = "Hello";
console.log(x.length); // 5
let strKR = "코딩에브리바디";
console.log(strKR.length); // 7
let emptyStr = ""; // 빈 문자열
console.log(emptyStr.length); // 0
/* length 속성의 값에는 '공백문자(띄어쓰기)'도 포함합니다. */
let str = "Hello World";
console.log(str.length); // 11 ("Hello" 5 + " " 1 + "World" 5)
let spaces = " "; // 3개의 공백 문자
console.log(spaces.length); // 3
주의할 점
문자열에서 length
속성은 다음의 두 가지를 주의해야 합니다.
문자열에 이모지가 포함되어 있을 경우
문자들의 실제 총 숫자가 length
속성이 반환하는 숫자와 일치하지 않을 수 있습니다.
자바스크립트 문자열의 length
속성은 문자열에 포함된 코드 유닛(code unit)의 수를 반환합니다. 여기서 코드 유닛은 UTF-16 인코딩에서 사용되는 16비트 단위입니다.
대부분의 일반적인 문자(예: 영어 알파벳, 한글, 한자 등)는 UTF-16에서 하나의 코드 유닛으로 표현되며, length
가 이들에 대해 올바르게 동작합니다. 그러나, 이모지나 일부 특수 문자는 UTF-16에서 두 개의 코드 유닛으로 표현될 수 있습니다. 이런 경우, 해당 문자의 length
는 2
가 됩니다.
예를 들어보겠습니다.
let str = "a"; // 단일 코드 유닛
console.log(str.length); // 1
let korean = "가"; // 단일 코드 유닛
console.log(korean.length); // 1
let emoji = "😊"; // 두 개의 코드 유닛으로 표현됨 <== 주의할 점
console.log(emoji.length); // 2
따라서, length
는 문자열 안의 코드 유닛 수를 반환하는 것이 맞지만, 코드 유닛이 반드시 문자 하나와 일치하지는 않음을 이해하는 것이 중요합니다.
이모지(😊)에 관해서는 웹 페이지에서 이모지(이모티콘) 사용하기를 참고하세요.
읽기 전용이며 직접 수정할 수 없음
자바스크립트 문자열의 length
속성은 읽기 전용 속성으로, 이 값을 직접 수정할 수 없습니다.
다음은 length
속성이 읽기 전용 속성임을 보여주는 간단한 예제 코드입니다.
let str = "Hello, World!";
console.log(str.length); // 13
// length 속성을 수정하려고 시도
str.length = 5;
console.log(str.length); // 여전히 13
console.log(str); // "Hello, World!" 그대로 유지됨
이 예제는 length
속성이 읽기 전용이라는 것을 보여줍니다. length
값을 변경하려고 시도해도, 자바스크립트는 이를 무시하고 원래의 값을 유지합니다.
브라우저 호환성
속성 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
length
|
1 | 12 | 1 | 1 |
명세서
명세서 사양 | |
---|---|
length
|
ECMAScript Language Specification #sec-properties-of-string-instances-length |