<aside> 💡 charAt은 인덱스에 해당하는 문자열을 반환하고, charCodeAt은 유니코드(0~65535) 값을 반환한다
</aside>
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
capitalizeFirstLetter('hello world') // Hello world
<aside>
💡 로마자(라틴 문자)에선 점이 있는 소문자 i
와 점이 없는 대문자 I
가 짝을 이룬다. 반면 터키어, 아제르바이잔어에선 점 없는 문자ı
I
와, 점 있는 문자 i
İ
가 짝을 이룬다. Istanbul
을 터키어 알파벳으로 적으면 İstanbul
이 되는데 첫 글자가 바로 점 있는 대문자다. (참고글)
</aside>
function capitalizeFirstLetter([first, ...rest], locale = navigator.language) {
return [first.toLocaleUpperCase(locale), ...rest].join('');
}
capitalizeFirstLetter('istanbul', 'en') // 'Istanbul'
capitalizeFirstLetter('istanbul', 'tr') // 'İstanbul' (tr은 터키어의 Locale 값)
Symbol.iterator
가 구현된 이터러블이므로 구조 분해 할당과 전개 연산자를 사용할 수 있다
navigator.language
: 사용자가 선호하는 브라우저 UI 언어의 Locale 값을 반환한다 ex) ko-KR
str.toLocaleUpperCase(locale)
: 인자로 받은 Locale에 따라 대문자로 변환한 값을 반환한다