2025. 8. 21. 18:24ใFront-end/JavaScript

๋ชฉ์ฐจ
1. ๋ฌธ์์ด
1-1. ๋ฐ์ดํ์ ์ข ๋ฃ
1-2. ํน์ ๊ธฐํธ
1-3. length : ๋ฌธ์์ด ๊ธธ์ด
1-4. ํน์ ๊ธ์์ ์ ๊ทผํ๊ธฐ
1-5. toLowerCase(), toUpperCase()
1-6. ๋ถ๋ถ ๋ฌธ์์ด ์ฐพ๊ธฐ : str.indexOf(substr, pos), includes, startsWith, endsWith
1-7. ๋ถ๋ถ ๋ฌธ์์ด ์ถ์ถ : substring, substr, slice
1. ๋ฌธ์์ด
1. ๋ฐ์ดํ์ ์ข ๋ฅ
๋ฌธ์์ด์ ์์๋ฐ์ดํ, ํฐ๋ฐ์ดํ, ๋ฐฑํฑ์ผ๋ก ๊ฐ์ ์ ์๋ค.
์์๋ฐ์ดํ์ ํฐ๋ฐ์ดํ์ ๊ธฐ๋ฅ์ ์ฐจ์ด๋ ์๋ค.
ํ์ง๋ง ๋ฐฑํฑ์ ๊ธฐ๋ฅ์ด ๋ช ๊ฐ ์๋ค.
- ์ค๊ฐ์ ${ํํ์} : ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด (template literal) ์ฝ์ ๊ฐ๋ฅ
- ๋ฌธ์์ด์ ์ฌ๋ฌ ์ค๋ก ์์ฑ ๊ฐ๋ฅ
- ํ
ํ๋ฆฟ ํจ์(template function)์์ ์ฌ์ฉ ๊ฐ๋ฅ
→ func`string`๊ณผ ๊ฐ์ด ๋ฐฑํฑ ๋ฐ๋ก ์์ ํจ์๋ช ์ ์จ์ฃผ๋ฉด, ์ด ํจ์๋ ๋ฐฑํฑ ๋ด ๋ฌธ์์ด ์กฐ๊ฐ/ํํ์ ํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ธ์๋ก ๋ฐ์ ์๋์ผ๋ก ํธ์ถ๋จ (tagged template)
์์ฃผ ์ฌ์ฉ๋์ง๋ ์๋ ๊ธฐ๋ฅ์ด๋ค
2. ํน์ ๊ธฐํธ
๋ฐฑ์ฌ๋์(\)๋ฅผ ํ์ฉํด์ ํน์ ๋ฌธ์๋ฅผ ๋ฌธ์์ด ์ฌ์ด์ ๋ฃ์ ์ ์๋ค.
| ํน์ ๋ฌธ์ | ์ค๋ช |
| \n | ์ค๋ฐ๊ฟ |
| \r | ์บ๋ฆฌ์ง ๋ฆฌํด( ์บ๋ฆฌ์ง ๋ฆฌํด๊ณผ ์ค๋ฐ๊ฟ ๋ฌธ์๋ฅผ ์กฐํฉํด ์ค์ ๋ฐ๊ฟ) |
| \', \" | ๋ฐ์ดํ |
| \\ | ์ญ์ฌ๋์ |
| \t | ํญ |
| \b, \f, \v | ๋ฐฑ์คํ์ด์ค, ํผํผ๋, ์ธ๋ก ํญ (์์ฆ์ ๊ฑฐ์ ์ฌ์ฉํ์ง ์์) |
| \xXX | 16์ง์ ์ ๋์ฝ๋ (z = \x7A) |
| \uXXXX | UTF-16 ์ธ์ฝ๋ฉ ๊ท์น์ ์ฌ์ฉํ๋ 16์ง์ ์ฝ๋ XXXX๋ก ํํํ ์ ๋์ฝ๋ ๊ธฐํธ e.g. \u00A9๋ ์ ์๊ถ ๊ธฐํธ©์ ์ ๋์ฝ๋์ด๋ค |
| \u{X...XXXXXX} (โฉ~6๊ฐ ์ฌ์ด์ 16์ง์ ๊ธ์) |
UTF-32๋ก ํํํ ์ ๋์ฝ๋ ๊ธฐํธ๋ก, ๋ช๋ช ํน์ํ ๊ธ์๋ ๋ ๊ฐ์ ์ ๋์ฝ๋ ๊ธฐํธ๋ฅผ ์ฌ์ฉํด ์ธ์ฝ๋ฉ ๋์ด 4๋ฐ์ดํธ๋ฅผ ์ฐจ์งํจ |
alert( "\u00A9" ); // ©
alert( "\u{20331}" ); // ไฝซ, ์ค๊ตญ์ด(๊ธด ์ ๋์ฝ๋)
alert( "\u{1F60D}" ); // ๐, ์๋ ์ผ๊ตด ๊ธฐํธ(๊ธด ์ ๋์ฝ๋)
3. length : ๋ฌธ์์ด ๊ธธ์ด
length ํ๋กํผํฐ์๋ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ์ ์ฅ๋๋ค.
alert( `My\n`.length ); // 3 (\n์ ๋ฌธ์์ด ํ๋๋ก ์ทจ๊ธ๋จ)
4. ํน์ ๊ธ์์ ์ ๊ทผํ๊ธฐ
๋ฌธ์์ด ๋ด ํน์ ์์ทจ์ ๊ธ์์ ์ ๊ทผํ๋ ค๋ฉด ๋๊ดํธ / str.charAt(pos)๋ฅผ ์ด์ฉํ๋ค.
๋ณดํต ๋๊ดํธ๋ฅผ ์ด์ฉํ๋ฉฐ, charAt์ ํธํ์ฑ์ ์ํด ๋จ์์๋ ๋ฉ์๋์ด๋ค.
์ ๊ทผํ๋ ค๋ ์์น์ ๊ธ์๊ฐ ์๋ ๊ฒฝ์ฐ, []๋ undefined๋ฅผ, charAt์ ๋น ๋ฌธ์์ด์ ๋ฐํํ๋ค.
let str = `Hello`;
// ์ฒซ ๋ฒ์งธ ๊ธ์
alert( str[0] ); // H
alert( str.charAt(0) ); // H
// ๋ง์ง๋ง ๊ธ์
alert( str[str.length - 1] ); // o
5. toLowerCase(), toUpperCase()
๋๋ฌธ์๋ฅผ ์๋ฌธ์๋ก, ์๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก ๋ณ๊ฒฝ์ํจ๋ค.
alert( 'ABC'.toLowerCase() ); // abc
alert( 'abc'.toUpperCase() ); // ABC
alert( 'Abc'[0].toLowerCase() ); // abc (ํ ๊ฐ๋ง ๋ณ๊ฒฝ๋ ๊ฐ๋ฅํ๋ค
6. ๋ถ๋ถ ๋ฌธ์์ด ์ฐพ๊ธฐ : str.indexOf(substr, pos), includes, startsWith, endsWith
str.indexOf(substr, pos)
๋ฌธ์์ด str์ pos๋ถํฐ ์์ํด ๋ถ๋ถ ๋ฌธ์์ด substr์ด ์ด๋์ ์์นํ๋์ง ์ฐพ์๋ธ๋ค.
์ํ๋ ๋ฌธ์์ด์ ์ฐพ์ผ๋ฉด ๊ทธ ์์น๋ฅผ ๋ฐํํ๊ณ , ์๋๋ฉด -1์ ๋ฐํํ๋ค.
let str = 'Widget with id';
alert( str.indexOf('Widget') ); // 0, str์ 'Widget'์ผ๋ก ์์
alert( str.indexOf("id") ); // 1, "id"๋ ์ฒซ๋ฒ์งธ ์์น์์ ๋ฐ๊ฒฌ W"id"get
alert( str.indexOf("id", 2) ); // 12
str.includes(substr, pos)
str์ ๋ถ๋ถ ๋ฌธ์์ด substr์ด ์๋ค๋ฉด true, ์๋ค๋ฉด false๋ฅผ ๋ฐํํ๋ค.
์์น ์ ๋ณด๋ ํ์์๊ณ , ํฌํจ ์ฌ๋ถ๋ง ์๊ณ ์ถ์ ๋ ์ฌ์ฉํ๊ธฐ ์ข๋ค.
๋๋ฒ์งธ ์ธ์ pos๋ฅผ ๋๊ธฐ๋ฉด ํด๋น ์์น๋ถํฐ ๊ฒ์ํ๋ค.
alert( "Widget with id".includes("Widget") ); // true
alert( "Hello".includes("Bye") ); // false
alert( "Widget".includes("id") ); // true
alert( "Widget".includes("id", 3) ); // false
str.startsWith, str.endsWidth
๋ฌธ์์ด str์ด ํน์ ๋ฌธ์์ด๋ก ์์ํ๋์ง, ๋๋๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค.
alert( "Widget".startsWith("Wid") ); // true
alert( "Widget".endsWith("get") ); // true
7. ๋ถ๋ถ ๋ฌธ์์ด ์ถ์ถ : substring, substr, slice
str.slice(start [, end])
๋ฌธ์์ด์ start๋ถํฐ end๊น์ง๋ฅผ ๋ฐํํ๋ค.
๋๋ฒ์งธ ์ธ์๊ฐ ์๋ต๋ ๊ฒฝ์ฐ, ๋ช ์ํ ์์น๋ถํฐ ๋ฌธ์์ด ๋๊น์ง๋ฅผ ๋ฐํํ๋ค.
let str = "stringify";
alert( str.slice(0, 5) ); // 'strin', 0๋ฒ์งธ๋ถํฐ 5๋ฒ์งธ - 1 ์์น๊น์ง
alert( str.slice(0, 1) ); // 's', 0๋ฒ์งธ๋ถํฐ 1๋ฒ์งธ - 1 ์์น๊น์ง
- ์ธ์๋ก ์์๋ฅผ ๋ฃ์ ์๋ ์๋ค. ์์๋ฅผ ๋๊ธฐ๋ฉด ๋ฌธ์์ด ๋ท๋ถ๋ถ๋ถํฐ ์นด์ดํ
์ ์์ํ๋ค.
alert( str.slice(-4, -1) ); // gif
str.substring(start [, end])
start์ end ์ฌ์ด์ ๋ฌธ์์ด์ ๋ฐํํ๋ค.
slice์ ์ ์ฌํ์ง๋ง start๊ฐ end๋ณด๋ค ์ปค๋ ๊ด์ฐฎ๋ค๋ ์ฐจ์ด๊ฐ ์๋ค.
๊ทธ๋ฆฌ๊ณ substring์ ์์๋ฅผ ํ์ฉํ์ง ์๋๋ค. (0์ผ๋ก ์ฒ๋ฆฌ๋จ)
let str = "stringify";
// ๋์ผํ ๋ถ๋ถ ๋ฌธ์์ด์ ๋ฐํ
alert( str.substring(2, 6) ); // "ring"
alert( str.substring(6, 2) ); // "ring"
// slice๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅด๋ค.
alert( str.slice(2, 6) ); // "ring" (๊ฐ์)
alert( str.slice(6, 2) ); // "" (๋น ๋ฌธ์์ด)
str.substr(start [, length])
start๋ถํฐ ์์ํด length๊ฐ์ ๊ธ์๋ฅผ ๋ฐํํ๋ค.
๋ ์์น๊ฐ ์๋ ๊ธธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ์ถ์ถํ๋ค๋ ์ ์์ ์์ ๋ ๋ฉ์๋์ ์ฐจ์ด๊ฐ ์๋ค.
let str = "stringify";
alert( str.substr(2, 4) ); // ring, 2~4๊ฐ
let str = "stringify";
alert( str.substr(-4, 2) ); // gi (๋ค์์๋ถํฐ 4๋ฒ์งธ ์์น๋ก๋ถํฐ 2๊ฐ)
์ฐธ๊ณ
'Front-end > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| B24: ๋งต๊ณผ ์ (map & set) ๊ฐ์ฒด (0) | 2025.08.26 |
|---|---|
| ์ค์ฝํ์ ํธ์ด์คํ ํํค์น๊ธฐ (0) | 2025.08.23 |
| B21 : ์ซ์ํ ์ฌํ (0) | 2025.08.21 |
| B20 : ๋ฐฐ์ด (2) | 2025.08.21 |
| B19 : ๋ฉํผ ๊ฐ์ฒด๋ก ์์ํ์ ๋ฉ์๋ ์ฐ๊ธฐ (0) | 2025.08.21 |
GitHub