๐ฆง String ํํค์น๊ธฐ!
์๋ฐ์ดํ๋ , ํ๋ฐ์ดํ๋ ๋ชจ๋ Stringํ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค.let good = '์ด๊ฒ๋ ๋ง๊ณ '; let better = "์ด๊ฒ๋ ๋ง์ต๋๋ค";
๐ค ๋์๋ฌธ์ ๋ฐ๊พธ๊ธฐ
Stringํ์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ํจ์๋ค์ด ๋ง์๋ฐ ๋ํ์ ์ผ๋ก ์์์ ๋์๋ฌธ์๋ฅผ ๋ฐ๊ฟ์ฃผ๋ ํจ์๊ฐ ์์ต๋๋ค.
JavaScript String Referenceconsole.log('js' === 'js'); // true console.log('Js' === 'js'); // false
๊ฒฐ๊ณผ์์ ๋ณด๋ฏ์ด String์ ๋์๋ฌธ์๊ฐ ๊ตฌ๋ถ๋ฉ๋๋ค.
์น์ฌ์ดํธ์ ๊ฒ์๊ธฐ๋ฅ์ด ์๋ ๊ฒฝ์ฐ "Js"๋ผ๊ณ ๊ฒ์ํ์ ๋,
J๊ฐ ์ ํํ ๋๋ฌธ์์ธ ๊ฒ๋ง ์ฐพ์์ฃผ๋ ๊ฒ์ด ์๋๋ผ
๋์๋ฌธ์ ๊ตฌ๋ถ ์์ด "js"๋ผ๋ ๋จ์ด๊ฐ ํฌํจ๋ ๋ชจ๋ ์ปจํ ์ธ ๋ฅผ ์ฐพ๊ณ ์ถ์ ์๊ฐ ์์ต๋๋ค.์๋์ ๊ฐ์ด ์์์ String์ ์์ฑํ๊ณ
toUpperCase
์toLowerCase
ํจ์๋ฅผ ํธ์ถํ์ฌ ๋ฐํ๋๋ ๊ฐ์ ํ์ธํด๋ด ์๋ค.let lastName = "Jieun Yang"; let upperLastName = lastName.toUpperCase(); let lowerLastName = lastName.toLowerCase(); lastName //"Jieun Yang" upperLastName //"JIEUN YANG" lowerLastName //"jieun yang"
lastName
์ด๋ผ๋ ๋ณ์์String
ํ์ ๊ฐ์ ํ ๋นํ๋ฉด
lastName
๋ณ์๋String
ํ์ ๋ณ์๊ฐ ๋ฉ๋๋ค.
toUpperCase
์toLowerCase
ํจ์๋String
์์ ์ ๊ณตํ๋ ํจ์์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ console์์ ํ์ธํ ๊ฒ๊ณผ ๊ฐ์ด,
lastName
์toUpperCase
ํจ์๋ฅผ ์ฌ์ฉํ๋ค๊ณlastName
๋ณ์์ ๊ฐ ์์ฒด๊ฐ ๋ฐ๋์ง๋ ์์์ต๋๋ค.
lastName
์ ์ด์ ๊ฐ์ ๊ทธ๋๋ก ๊ฐ๊ณ ์์ต๋๋ค.๐ค ๋ฌธ์ ๊ธธ์ด
๋ฌธ์์ธ Stringํ๋length
๋ผ๋ ์์ฑ์ผ๋ก ๊ธธ์ด๋ฅผ ์ ์ ์์ต๋๋ค.๋ค์ ์์ ๋ ํฐ ๋ฒํธ(phoneNumber)๊ฐ 10์๋ฆฌ๋ ์๋๊ณ 11์๋ฆฌ๋ ์๋๋ฉด alert๋ฅผ ๋ณด์ฌ์ค๋๋ค.
if (phoneNumber.length !== 10 && phoneNumber.length !== 11) { alert("ํฐ ๋ฒํธ ์ ๋๋ก ์ ๋ ฅํ์ จ๋์?"); }
let name = prompt("์ฑํจ์ ์ ๋ ฅํด์ฃผ์ธ์") if (name.length === 2) { alert("์ธ์์ด์๊ตฐ์! ์ด๋ฆ์ด ์ด์๋ค์.") } else if (name.length === 1) { alert("์ ๋๋ก ์ ๋ ฅํ์ จ๋์?") } else if (name.length === 3) { alert("๋ฉ์ง ์ด๋ฆ์ ๋๋ค."); }
์ฐธ๊ณ .
0์ผ๋ก ์์ํ๋ ์ซ์ ํํ์์ ์์ต๋๋ค.
๊ทธ๋์ ํธ๋ํฐ ๋ฒํธ๋ ์ซ์๋ก ์ด๋ฃจ์ด์ ธ ์์ง๋ง,
๋ฌธ์์ด๋ก ๊ด๋ฆฌํด์ผ ์ปดํจํฐ๊ฐ ์ฒซ ์ซ์์ธ "0"๋ ๊ฐ๊ณ ์๊ฒ ๋ฉ๋๋ค.let phoneNumber = 01012341234; phoneNumber //136954524 phoneNumber.length //๊ฒฐ๊ณผ ์์.
์ด์ ๊ฐ์ด
phoneNumber
๋Number
ํ์ด๋ฉฐ, ์์ 0์ด ์์ด ๋ท ์ซ์๋ง ํ ๋น๋์์ต๋๋ค.
๋ํNumber
ํ์๋length
๋ผ๋ ์์ฑ์ด ์กด์ฌํ์ง ์์ต๋๋ค. (length ๋ ์คํธ๋ง์์ ๊ฐ์ง๋ ์์ฑ์ด๋ฏ๋ก.)let phoneNumber = "01012341234"; phoneNumber //"01012341234" phoneNumber.length //11
๐ค ๋ฌธ์์ด ์ฐพ๊ธฐ
let info = "JavaScript๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค.";
์์ ์ค๋ช ์ "ํ๋ก๊ทธ๋๋ฐ"์ด๋ผ๋ ๋จ์ด๊ฐ ํฌํจ๋๋์ง ์๊ณ ์ถ์ต๋๋ค.
indexOf()
ํจ์๋ ๋ฌธ์์ด์ ํน์ ๋ฌธ์์ด์ด ๋ค์ด์๋์ง ํ์ธํ๊ณ ,
๋ง์ฝ ์๋ค๋ฉด ๋ช๋ฒ ์งธ ์์์ ํด๋น ๋ฌธ์์ด์ด ์๋์ง ์๋ ค์ค๋๋ค.
ํด๋น ๋ฌธ์์ด์ด ์๋ค๋ฉด -1์ ๋ฐํํฉ๋๋ค.let info = "JavaScript๋ ํ๋ก๋๋ฐ ์ธ์ด์ด๋ค."; let firstChar = info.indexOf("ํ๋ก๋๋ฐ"); console.log(info, firstChar); if (firstChar !== -1) { info = info.slice(0, firstChar) + "ํ๋ก๊ทธ๋๋ฐ" + info.slice(firstChar+4, info.length); } console.log(info); //๊ฒฐ๊ณผ "JavaScript๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค."
- info ๋ฌธ๊ตฌ์์ "ํ๋ก๋๋ฐ"์ด ์์๋๋ index๋ 12์ ๋๋ค.
- ifย (firstChar !== -1)
- firstChar์ด -1์ด ์๋๋ฉด
- = "ํ๋ก๋๋ฐ"์ด๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ์์ง ์๋ค๋ฉด
- = "ํ๋ก๋๋ฐ"์ด๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ์๋ค๋ฉด
- = "ํ๋ก๋๋ฐ" ๋ฌธ๊ตฌ๋ 12๋ฒ์งธ์์ ์์ํ๋ฏ๋ก firstChar๋ 12 ์ด๋ผ๋ ๋ป์ ๋๋ค.
"ํ๋ก๋๋ฐ"์ด๋ผ๋ ์คํ๊ฐ ํฌํจ๋์ด์์ผ๋ฉด if๋ฌธ์ ์คํํฉ๋๋ค.
- info.slice(0, firstChar)
slice๋ ์ด๋ฆ๊ทธ๋๋ก ํ ์คํธ๋ฅผ ์๋ผ์ฃผ๋ ํจ์์ ๋๋ค.slice(์๋ฆด ์์์์น, ์๋ฆด ๋์์น)
๋ฌธ๊ตฌ์ ์ฒซ ๋ฒ์งธ ๊ฐ์ 0์ ๋๋ค.
๊ทธ๋์ info ๋ฌธ๊ตฌ์ 0๋ถํฐ 12๋ฒ์งธ๊น์ง ์๋ผ์ ๋ฐํํฉ๋๋ค.
์๋ฆด ๋์์น๊ฐ ์กฐ๊ธ ํท๊ฐ๋ฆฌ๋๋ฐ, 12๋ฒ์งธ์ ๋ฌธ๊ตฌ๋ "ํ"์ ๋๋ค.
12๋ฒ์งธ๊ฐ ๋ ๋ง๋๋ฐ ํด๋น ๋ฌธ์๋ ํฌํจํ์ง ์์ต๋๋ค.
๋ฐ๋ก ๊ทธ ์ง์ ์์ ๋์ด์ค๋๋ค.console.log(info.slice(0, firstChar));
- info.slice(firstChar+4, info.length);
info์ 16๋ฒ์งธ์ธ "์ธ" ์ด์ ์ ์คํ์ด์ค๋ถํฐ info์ ๊ธธ์ด(+4)์ธ 22๋ฒ์งธ๊น์ง ์๋ฅด๊ฒ ๋ฉ๋๋ค.
22๋ฒ์งธ๋ ๋ฌธ์๊ฐ ์กด์ฌํ์ง ์์ง๋ง,
๊ทธ ์ง์ ์ ๋์ผ๋ "."๊น์ง ํฌํจํ๋ ๋ฌธ์์ด๋ก ์๋ฆฌ๊ฒ ๋ฉ๋๋ค.console.log(firstChar+4, info.length);
๐ค Assignment
String์ slice()๋ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฌธ์์ด ํจ์ ์ค ํ๋์ ๋๋ค.
JavaScript String slice() methodvar str = "์์ธ์ ์์ฒ๊ตฌ ์ ์๋"; var res = str.slice(0, 5); str.slice(0, 5) //"์์ธ์ ์" str.slice(0) //"์์ธ์ ์์ฒ๊ตฌ ์ ์๋" str.slice(3) //" ์์ฒ๊ตฌ ์ ์๋" str.slice(3, 8) //" ์์ฒ๊ตฌ " str.slice(0, 1) //"์" str.slice(-1) //"๋"
sliceCityFromAddress ํจ์๋ฅผ ๊ตฌํํด ์ฃผ์ธ์.
- sliceCityFromAddress ํจ์๋ address ์ธ์๋ฅผ ๋ฐ์ต๋๋ค.
- address ์ธ์์๋ ์ฃผ์๋ฅผ ๋ํ๋ด๋ string์ด ์ฃผ์ด์ง๋๋ค.
- ์ฃผ์ด์ง ์ฃผ์๊ฐ ์ด๋ ๋์์ธ์ง๋ฅผ ์ฐพ์๋ด์, ํด๋น ์ฃผ์์์ ๋์ ๋ถ๋ถ๋ง ์ญ์ ํ ์๋ก์ด ์ฃผ์๋ฅผ ๋ฆฌํดํด ์ฃผ์ธ์.
- ์ฃผ์๋ ๋ฌด์กฐ๊ฑด "์" ๋ก ๋๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, "์์ธ์".
- "๋" ์ "์" ๋ ์ฃผ์์ ํ๋ฒ ๋ฐ์ ํฌํจ๋์ด ์์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ ์ฃผ์๊ฐ ์ฃผ์ด์ก๋ค๋ฉด;"๊ฒฝ๊ธฐ๋ ์ฑ๋จ์ ๋ถ๋น๊ตฌ ์ค์๊ณต์๋ก 53"
๋ค์๊ณผ ๊ฐ์ ๊ฐ์ด ๋ฆฌํด๋์ด์ผ ํฉ๋๋ค:
"๊ฒฝ๊ธฐ๋ ๋ถ๋น๊ตฌ ์ค์๊ณต์๋ก 53"
๋ต๋ณ
function sliceCityFromAddress(address) { let area = address.indexOf("๋"); //๋๋ฅผ ์ฐพ๋ ๋ณ์ let si = address.indexOf("์"); //์๋ฅผ ์ฐพ๋ ๋ณ์ if (area === -1){ // area ๋ณ์์ "๋" ๊ฐ ์์ด์ -1์ ๋ฐํํ๊ฒ ๋๋ค๋ฉด return address.slice(si + 2); // "์"์ "์"์ ์๋ถ๋ถ ๋ ๊ธ์๋ฅผ ์ญ์ ์์ผ์ค. } else { return address.slice(0, area + 2) + address.slice(si + 2); } // ๊ฒฝ๊ธฐ๋ + ๋ถ๋น๊ตฌ ์ค์๊ณต์๋ก 53 } sliceCityFromAddress("์์ธ์ ์์ฒ๊ตฌ ๋จ๋ถ์ํ๋ก"); //"์์ฒ๊ตฌ ๋จ๋ถ์ํ๋ก" sliceCityFromAddress("๊ฒฝ๊ธฐ๋ ์ฑ๋จ์ ๋ถ๋น๊ตฌ ์ค์๊ณต์๋ก 53"); //"๊ฒฝ๊ธฐ๋ ๋ถ๋น๊ตฌ ์ค์๊ณต์๋ก 53" sliceCityFromAddress("์์ธ์ ๊ฐ๋จ๊ตฌ ํ ํค๋๋ก 427"); //"๊ฐ๋จ๊ตฌ ํ ํค๋๋ก 427"
address.slice(0, area + 2)
= ๋๋ฅผ ์ฐพ์์ ๋ ๋ค์ ์๋ ๊ธ์๋ค์ ์ญ์ ํด์ค. ์ฆ, ๊ฒฝ๊ธฐ๋๋ง ๋จ์.
address.slice(si + 2)
= ์๋ฅผ ์ฐพ์์ ์๋ฅผ ํฌํจํ ๊ธ์๋ค์ ์ญ์ ํด์ค. ์ฆ, "~์"๋ง ์ญ์ ๋จ.
์ ๋ฌ ์ธ์ -1์ ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ฅผ ๊ฐ๋ฆฌํค๋ฉฐ, ์ ๋ฌ์ธ์ -3์ ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ถํฐ ์์ชฝ์ผ๋ก ์ธ ๋ฒ์งธ ์์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.