32μ₯ String
νμ€ λΉνΈμΈ κ°μ²΄μΈ Stringμ μμ νμ μΈ λ¬Έμμ΄μ λ€λ£° λ μ μ©ν νλ‘νΌν°μ λ©μλλ₯Ό μ 곡νλ€.
32.1 String μμ±μ ν¨μ
νμ€ λΉνΈμΈ κ°μ²΄μΈ String κ°μ²΄λ μμ±μ ν¨μ κ°μ²΄λ€. λ°λΌμ new μ°μ°μμ ν¨κ» νΈμΆνμ¬ String μΈμ€ν΄μ€λ₯Ό μμ±ν μ μλ€.
μΈμλ₯Ό μ λ¬νμ§ μκ³ new μ°μ°μμ ν¨κ» νΈμΆνλ©΄ λΉ λ¬Έμμ΄μ ν λΉν String λνΌ κ°μ²΄λ₯Ό μμ±νλ€. μΈμλ₯Ό μ λ¬νκ³ new μ°μ°μμ ν¨κ» νΈμΆνλ©΄ μΈμλ‘ μ λ¬λ°μ λ¬Έμμ΄μ ν λΉν String λνΌ κ°μ²΄λ₯Ό μμ±νλ€.
String λνΌ κ°μ²΄λ λ°°μ΄κ³Ό λ§μ°¬κ°μ§λ‘ length νλ‘νΌν°μ μΈλ±μ€λ₯Ό λνλ΄λ μ«μ νμμ λ¬Έμμ΄μ νλ‘νΌν° ν€λ‘, κ° λ¬Έμλ₯Ό νλ‘νΌν° κ°μΌλ‘ κ°λ μ μ¬ λ°°μ΄ κ°μ²΄μ΄λ©΄μ μ΄ν°λ¬λΈμ΄λ€. λ°λΌμ λ°°μ΄κ³Ό μ μ¬νκ² μΈλ±μ€λ₯Ό μ¬μ©νμ¬ κ° λ¬Έμμ μ κ·Όν μ μλ€.
λ¨, λ¬Έμμ΄μ μμ κ°μΌλ‘ λ³κ²½ν μ μλ€.
String μμ±μ ν¨μμ μΈμλ‘ λ¬Έμμ΄μ΄ μλ κ°μ μ λ¬νλ©΄ μΈμλ₯Ό λ¬Έμμ΄λ‘ κ°μ λ³νν ν, [[StringData]] λ΄λΆλ³μ¬λ‘―μνλ λ¬Έμμ΄μ ν λΉν String λνΌ κ°μ²΄λ₯Ό μμ±νλ€.
new μ°μ°μλ₯Ό μ¬μ©νμ§ μκ³ String μμ±μ ν¨μλ₯Ό νΈμΆνλ©΄ λ¬Έμμ΄μ λ°ννλ€. μ΄λ₯Ό μ΄μ©νμ¬ λͺ μμ μΌλ‘ νμ μ λ³ννκΈ°λ νλ€.
32.1 length νλ‘νΌν°
length νλ‘νΌν°λ λ¬Έμμ΄μ λ¬Έμ κ°μλ₯Ό λ°ννλ€.
String λνΌ κ°μ²΄λ λ°°μ΄κ³Ό λ§μ°¬κ°μ§λ‘ length νλ‘νΌν°λ₯Ό κ°λλ€. κ·Έλ¦¬κ³ μΈλ±μ€λ₯Ό λνλ΄λ μ«μλ₯Ό νλ‘νΌν° ν€λ‘, κ° λ¬Έμλ₯Ό νλ‘νΌν° κ°μΌλ‘ κ°μ§λ―λ‘ String λνΌ κ°μ²΄λ μ μ¬ λ°°μ΄ κ°μ²΄λ€.
32.3 String λ©μλ
String κ°μ²΄μλ μλ³Έ String λνΌ κ°μ²΄λ₯Ό μ§μ λ³κ²½νλ λ©μλκ° μ‘΄μ¬νμ§ μλλ€. κ·Έλμ String κ°μ²΄μ λ©μλλ μΈμ λ μλ‘μ΄ λ¬Έμμ΄μ λ°ννλ€. λ¬Έμμ΄μ λ³κ²½ λΆκ°λ₯ν κ°(immutable)ν μμ κ°μ΄κΈ° λλ¬Έμ String λνΌ κ°μ²΄λ μ½κΈ° μ μ© κ°μ²΄(read only)λ‘ μ 곡λλ€.
λ§μ½ String λνΌ κ°μ²΄κ° μ½κΈ° μ μ© κ°μ²΄κ° μλλ©΄, λ³κ²½λ String λνΌ κ°μ²΄λ₯Ό λ¬Έμμ΄λ‘ λλ릴 λ λ¬Έμμ΄μ΄ λ³κ²½λλ€. λ°λΌμ String κ°μ²΄μ λͺ¨λ λ©μλλ String λνΌ κ°μ²΄λ₯Ό μ§μ λ³κ²½ν μ μκ³ , String λνΌ κ°μ²΄μ λ©μλλ μΈμ λ μλ‘μ΄ λ¬Έμμ΄μ μμ±νμ¬ λ°ννλ€.
32.3.1 String.prototype.indexOf
indexOf λ©μλλ λμ λ¬Έμμ΄μμ μΈμλ‘ μ λ¬λ°μ λ¬Έμμ΄μ κ²μν΄ μ²« λ²μ§Έ μΈλ±μ€λ₯Ό λ°ννλ€. κ²μμ μ€ν¨νλ©΄ -1μ λ°ννλ€.
indexOf λ©μλλ λμ λ¬Έμμ΄μ νΉμ λ¬Έμμ΄μ΄ μ‘΄μ¬νλμ§ νμΈν λ μ μ©νλ€.
ES6μμ λμ λ String.prototype.includes λ©μλλ₯Ό μ¬μ©νλ©΄ κ°λ μ±μ΄ λ μ’λ€.
32.3.2 String.prototype.search
λμ λ¬Έμμ΄μμ μΈμλ‘ μ λ¬λ°μ μ κ· ννμκ³Ό 맀μΉνλ λ¬Έμμ΄μ κ²μν΄ μΌμΉνλ λ¬Έμμ΄μ μΈλ±μ€λ₯Ό λ°ννλ€. κ²μμ μ€ν¨νλ©΄ -1μ λ°ννλ€.
32.3.3 String.prototype.includes
ES6μμ λμ λ includes λ©μλλ λμ λ¬Έμμ΄μ μΈμλ‘ μ λ¬λ°μ λ¬Έμμ΄μ΄ ν¬ν¨λμ΄ μλμ§ νμΈνμ¬ κ·Έ κ²°κ³Όλ₯Ό true λλ false λ‘ λ°ννλ€. 2λ²μ§Έ μΈμλ‘ κ²μ μμ μΈλ±μ€λ₯Ό μ λ¬ν μ μλ€.
32.3.4 String.prototype.startsWith
ES6μμ λμ λ startsWith λ©μλλ λμ λ¬Έμμ΄μ΄ μΈμλ‘ μ λ¬λ°μ λ¬Έμμ΄λ‘ μμνλμ§ νμΈνμ¬ true λλ falseλ₯Ό λ°ννλ€. 2λ²μ§Έ μΈμλ‘ κ²μ μμ μΈλ±μ€λ₯Ό μ λ¬ν μ μλ€.
32.3.5 String.prototype.endsWith
ES6μμ λμ λ endsWith λ©μλλ λμ λ¬Έμμ΄μ΄ μΈμλ‘ μ λ¬λ°μ λ¬Έμμ΄λ‘ λλλμ§ νμΈνμ¬ true λλ falseλ₯Ό λ°ννλ€. 2λ²μ§Έ μΈμλ‘ κ²μν λ¬Έμμ΄μ κΈΈμ΄λ₯Ό μ λ¬ν μ μλ€.
32.3.6 String.prototype.charAt
λμ λ¬Έμμ΄μμ μΈμλ‘ μ λ¬λ°μ μΈλ±μ€μ μμΉν λ¬Έμλ₯Ό κ²μνμ¬ λ°ννλ€. μΈλ±μ€λ λ¬Έμμ΄μ λ²μ (0 ~ λ¬Έμμ΄ κΈΈμ΄-1) μ¬μ΄μ μ μμ¬μΌ νλ€. μΈλ±μ€κ° λ¬Έμμ΄μ λ²μλ₯Ό λ²μ΄λ μ μμΈ κ²½μ° λΉ λ¬Έμμ΄μ λ°ννλ€.
32.3.7 String.prototype.substring
λμ λ¬Έμμ΄μμ 첫 λ²μ§Έ μΈμλ‘ μ λ¬λ°μ μΈλ±μ€μ μμΉν λ¬ΈμλΆν° λ λ²μ§Έ μΈμλ‘ μ λ¬λ°μ μΈλ±μ€μ μμΉν λ¬Έμμ λ°λ‘ μ΄μ λ¬ΈμκΉμ§ λΆλΆ λ¬Έμμ΄μ λ°ννλ€. λ λ²μ§Έ μΈμλ μλ΅ κ°λ₯νλ©°, μ΄λ 첫 λ²μ§Έ μΈμλΆν° λ§μ§λ§ λ¬ΈμκΉμ§ λΆλΆ λ¬Έμμ΄μ λ°ννλ€.
indexOf λ©μλμ ν¨κ» μ¬μ©νλ©΄ νΉμ λ¬Έμμ΄μ κΈ°μ€μΌλ‘ μλ€μ μμΉν λΆλΆ λ¬Έμμ΄μ μ·¨ν μ μλ€.
32.3.8 String.prototype.slice
substring λ©μλμ λμΌνκ² μλνλ€. λ¨, slice λ©μλμλ μμμΈ μΈμλ₯Ό μ λ¬ν΄ λ€μμλΆν° λ¬Έμμ΄μ μλ₯Ό μ μλ€.
32.3.9 String.prototype.toUpperCase
λμ λ¬Έμμ΄μ λͺ¨λ λλ¬Έμλ‘ λ³κ²½ν λ¬Έμμ΄μ λ°ννλ€.
32.3.10 String.prototype.toLowerCase
λμ λ¬Έμμ΄μ λͺ¨λ μλ¬Έμλ‘ λ³κ²½ν λ¬Έμμ΄μ λ°ννλ€.
32.3.11 String.prototype.trim
λμ λ¬Έμμ΄ μ λ€ κ³΅λ°± λ¬Έμλ₯Ό μ κ±°ν λ¬Έμμ΄μ λ°ννλ€.
trimStart, trimEnd λ₯Ό μ¬μ©ν΄ μ λ€ κ³΅λ°±μ μ κ±°ν μ μλ€.
32.3.12 String.prototype.repeat
ES6μμ λμ λ repeat λ©μλλ λμ λ¬Έμμ΄μ μΈμλ‘ μ λ¬λ°μ μ μλ§νΌ λ°λ³΅ν΄ μ°κ²°ν μλ‘μ΄ λ¬Έμμ΄μ λ°ννλ€. μΈμλ‘ μ λ¬λ°μ μ μκ° 0 μ΄λ©΄ λΉ λ¬Έμμ΄μ λ°ννκ³ , μμμ΄λ©΄ RangeErrorλ₯Ό λ°μμν¨λ€. μΈμλ₯Ό μλ΅νλ©΄ κΈ°λ³Έκ°μ 0μ΄λ€.
32.3.13 String.prototype.replace
λμ λ¬Έμμ΄μμ 첫 λ²μ§Έ μΈμλ‘ μ λ¬λ°μ λ¬Έμμ΄ λλ μ κ·ννμμ κ²μν΄ λ λ²μ§Έ μΈμλ‘ μ λ¬ν λ¬Έμμ΄λ‘ μΉνν λ¬Έμμ΄μ λ°ννλ€.
λ λ²μ§Έ μΈμλ‘ μΉν ν¨μλ₯Ό μ λ¬ν μλ μλ€. 첫 λ²μ§Έ μΈμλ‘ μ λ¬ν λ¬Έμμ΄ λλ μ κ· ννμμ 맀μΉν κ²°κ³Όλ₯Ό λ λ²μ§Έ μΈμμΈ μΉν ν¨μμ μΈμλ‘ μ λ¬νλ©΄μ νΈμΆνκ³ , μΉν ν¨μκ° λ°νν κ²°κ³Όμ λ§€μΉ κ²°κ³Όλ₯Ό μΉννλ€.
32.3.14 String.prototype.split
λμ λ¬Έμμ΄μμ 첫 λ²μ§Έ μΈμλ‘ μ λ¬ν λ¬Έμμ΄ λλ μ κ· ννμμ κ²μν΄ λ¬Έμμ΄μ ꡬλΆν ν λΆλ¦¬λ κ° λ¬Έμμ΄λ‘ μ΄λ£¨μ΄μ§ λ°°μ΄μ λ°ννλ€. μΈμλ‘ λΉ λ¬Έμμ΄μ μ λ¬νλ©΄ κ° λ¬Έμλ₯Ό λͺ¨λ λΆλ¦¬νκ³ , μΈμλ₯Ό μλ΅νλ©΄ λμ λ¬Έμμ΄ μ 체λ₯Ό λ¨μΌ μμλ‘ νλ λ°°μ΄μ λ°ννλ€.
Last updated
Was this helpful?