νμ€ λΉνΈμΈ κ°μ²΄μΈ Stringμ μμ νμ μΈ λ¬Έμμ΄μ λ€λ£° λ μ μ©ν νλ‘νΌν°μ λ©μλλ₯Ό μ 곡νλ€.
32.1 String μμ±μ ν¨μ
νμ€ λΉνΈμΈ κ°μ²΄μΈ String κ°μ²΄λ μμ±μ ν¨μ κ°μ²΄λ€. λ°λΌμ new μ°μ°μμ ν¨κ» νΈμΆνμ¬ String μΈμ€ν΄μ€λ₯Ό μμ±ν μ μλ€. String μμ±μ ν¨μμ μΈμλ₯Ό μ λ¬νμ§ μκ³ new μ°μ°μμ ν¨κ» νΈμΆνλ©΄ [[StringData]] λ΄λΆ μ¬λ‘―μ λΉ λ¬Έμμ΄μ ν λΉν String κ°μ²΄λ₯Ό μμ±νλ€.
const strObj = new String();
console.log(strObj); // String length: 0
String μμ±μ ν¨μμ μΈμλ‘ λ¬Έμμ΄μ μ λ¬νλ©΄μ new μ°μ°μμ ν¨κ» νΈμΆνλ©΄ [[StringData]] λ΄λΆ μ¬λ‘―μ μΈμλ‘ μ λ¬λ°μ λ¬Έμμ΄μ ν λΉν String λνΌ κ°μ²΄λ₯Ό μμ±νλ€
const strObj = new String('lee');
console.log(strObj); // String {'lee'}
String λνΌ κ°μ²΄λ λ°°μ΄κ³Ό λ§μ°¬κ°μ§λ‘ length νλ‘νΌν°μ μΈλ±μ€λ₯Ό λνλ΄λ μ«μ νμμ λ¬Έμμ΄μ νλ‘νΌν° ν€λ‘, κ° λ¬Έμλ₯Ό νλ‘νΌν° κ°μΌλ‘ κ°λ μ μ¬ λ°°μ΄ κ°μ²΄μ΄λ©΄μ μ΄ν°λ¬λΈμ΄λ€. λ°λΌμ λ°°μ΄κ³Ό μ μ¬νκ² μΈλ±μ€λ₯Ό μ¬μ©νμ¬ κ° λ¬Έμμ μ κ·Όν μ μλ€. λ¨, λ¬Έμμ΄μ μμ κ°μ΄λ―λ‘ λ³κ²½ν μ μλ€. μ΄λ μλ¬λ λ°μνμ§ μλλ€.
const strObj = new String('lee');
console.log(strObj); // String {'lee'}
console.log(strObj[0]); // l
console.log(strObj[1]); // e
console.log(strObj[2]); // e
strObj[0] = 'w';
console.log(strObj); // String {'lee'}
String μμ±μ ν¨μμ μΈμλ‘ λ¬Έμμ΄μ΄ μλ κ°μ μ λ¬νλ©΄ μΈμλ₯Ό λ¬Έμμ΄λ‘ κ°μ λ³νν ν, [[StringData]] λ΄λΆ μ¬λ‘―μ λ³νλ λ¬Έμμ΄μ ν λΉν String λνΌ κ°μ²΄λ₯Ό μμ±νλ€.
const strObj = new String(123);
console.log(strObj); // String {'123'}
console.log(strObj[0]); // 1
console.log(strObj[1]); // 2
console.log(strObj[2]); // 3
console.log(strObj); // String {'123'}
λ§μ½ new μ°μ°μλ₯Ό μ¬μ©νμ§ μκ³ String μμ±μ ν¨μλ₯Ό νΈμΆνλ©΄ String μΈμ€ν΄μ€κ° μλ λ¬Έμμ΄μ λ°ννλ€. μ΄λ₯Ό μ΄μ©νμ¬ λͺ μμ μΌλ‘ νμ μ λ³ννκΈ°λ νλ€.
console.log(String(1)); // '1'
console.log(String(NaN)); // 'NaN'
console.log(String(true)); // 'true'
console.log(String(false)); // 'false'
32.2 length νλ‘νΌν°
length νλ‘νΌν°λ λ¬Έμμ΄μ λ¬Έμ κ°μλ₯Ό λ°ννλ€.
console.log('hello'.length); // 5
console.log('hi'.length); // 2
String λνΌ κ°μ²΄λ λ°°μ΄κ³Ό λ§μ°¬κ°μ§λ‘ length νλ‘νΌν°λ₯Ό κ°λλ€. κ·Έλ¦¬κ³ μΈλ±μ€λ₯Ό λνλ΄λ μ«μλ₯Ό νλ‘νΌν° ν€λ‘, κ° λ¬Έμλ₯Ό νλ‘νΌν° κ°μΌλ‘ κ°μ§λ―λ‘ String λνΌ κ°μ²΄λ μ μ¬ λ°°μ΄ κ°μ²΄λ€.
32.3 String λ©μλ
String κ°μ²΄μλ μλ³Έ String λνΌ κ°μ²΄λ₯Ό μ§μ λ³κ²½νλ λ©μλλ μ‘΄μ¬νμ§ μλλ€. String κ°μ²΄μ λ©μλλ μΈμ λ μλ‘μ΄ λ¬Έμμ΄μ λ°ννλ€. λ¬Έμμ΄μ λ³κ²½ λΆκ°λ₯ν μμ κ°μ΄κΈ° λλ¬Έμ String λνΌ κ°μ²΄λ μ½κΈ° μ μ© κ°μ²΄λ‘ μ 곡λλ€.
1) String.prototype.indeOf
λμ λ¬Έμμ΄μμ μΈμλ‘ μ λ¬λ°μ λ¬Έμμ΄μ κ²μνμ¬ μ²« λ²μ§Έ μΈλ±μ€λ₯Ό λ°ν
κ²μ μ€ν¨μ -1 λ°ν
λ λ²μ§Έ μΈμλ‘ κ²μμ μμν μΈλ±μ€ μ λ¬(μ΅μ )
2) String.prototype.search
λμ λ¬Έμμ΄μμ μΈμλ‘ μ λ¬λ°μ μ κ· ννμκ³Ό λ§€μΉνλ λ¬Έμμ΄μ κ²μνμ¬ μΌμΉνλ λ¬Έμμ΄μ μΈλ±μ€λ₯Ό λ°ν
κ²μ μ€ν¨μ -1 λ°ν
3) String.prototype.includes
λμ λ¬Έμμ΄μ μΈμλ‘ μ λ¬λ°μ λ¬Έμμ΄μ΄ ν¬ν¨λμ΄ μλμ§ νμΈνμ¬ κ·Έ κ²°κ³Όλ₯Ό λΆλ¦¬μΈ κ°μΌλ‘ λ°ν
λ λ²μ§Έ μΈμλ‘ κ²μμ μμν μΈλ±μ€ μ λ¬(μ΅μ )
4) String.prototype.startsWith
λμ λ¬Έμμ΄μ΄ μΈμλ‘ μ λ¬λ°μ λ¬Έμμ΄λ‘ μμνλμ§ νμΈνμ¬ κ·Έ κ²°κ³Όλ₯Ό λΆλ¦¬μΈ κ°μΌλ‘ λ°ν
λ λ²μ§Έ μΈμλ‘ κ²μμ μμν μΈλ±μ€ μ λ¬(μ΅μ )
5) String.prototype.endsWith
λμ λ¬Έμμ΄μ΄ μΈμλ‘ μ λ¬λ°μ λ¬Έμμ΄λ‘ λλλμ§ νμΈνμ¬ κ·Έ κ²°κ³Όλ₯Ό λΆλ¦¬μΈ κ°μΌλ‘ λ°ν
λ λ²μ§Έ μΈμλ‘ κ²μν λ¬Έμμ΄μ κΈΈμ΄ μ λ¬(μ΅μ )
6) String.prototype.charAt
λμ λ¬Έμμ΄μμ μΈμλ‘ μ λ¬λ°μ μΈλ±μ€μ μμΉν λ¬Έμλ₯Ό κ²μνμ¬ λ°ν
7) String.prototype.substring
λμ λ¬Έμμ΄μμ 첫 λ²μ§Έ μΈμλ‘ μ λ¬λ°μ μΈλ±μ€μ μμΉνλ λ¬ΈμλΆν° λ λ²μ§Έ μΈμλ‘ μ λ¬λ°μ μΈλ±μ€μ μμΉνλ λ¬Έμμ λ°λ‘ μ΄μ λ¬ΈμκΉμ§μ λΆλΆ λ¬Έμμ΄μ λ°ν(λ λ²μ§Έ μΈμλ μ΅μ )
8) String.prototype.slice
substring λ©μλμ λμΌνκ² λμ(λ¨, μμμΈ μΈμλ₯Ό μ λ¬ν μ μλ€.)
9) String.prototype.toUpperCase
λμ λ¬Έμμ΄μ λͺ¨λ λλ¬Έμλ‘ λ³κ²½ν λ¬Έμμ΄μ λ°ν
10) String.prototype.toLowerCase
λμ λ¬Έμμ΄μ λͺ¨λ μλ¬Έμλ‘ λ³κ²½ν λ¬Έμμ΄μ λ°ν
11) String.prototype.trim
λμ λ¬Έμμ΄ μλ€μ 곡백 λ¬Έμκ° μμ κ²½μ° μ΄λ₯Ό μ κ±°ν λ¬Έμμ΄μ λ°ν
12) String.prototype.repeat
λμ λ¬Έμμ΄μ μΈμλ‘ μ λ¬λ°μ μ μλ§νΌ λ°λ³΅ν΄ μ°κ²°ν μλ‘μ΄ λ¬Έμμ΄μ λ°ν
μΈμλ‘ μ λ¬λ°μ μ μκ° 0μ΄λ©΄ λΉ λ¬Έμμ΄ λ°ν
μμλ©΄ RangeError λ°μ
μΈμ μλ΅μ κΈ°λ³Έκ° 0 μ€μ
13) String.prototype.replace
λμ λ¬Έμμ΄μ 첫 λ²μ§Έ μΈμλ‘ μ λ¬λ°μ λ¬Έμμ΄ λλ μ κ·ννμμ κ²μνμ¬ λ λ²μ§Έ μΈμλ‘ μ λ¬ν λ¬Έμμ΄λ‘ μΉνν λ¬Έμμ΄μ λ°ν
14) String.prototype.split
λμ λ¬Έμμ΄μμ 첫 λ²μ§Έ μΈμλ‘ μ λ¬ν λ¬Έμμ΄ λλ μ κ· ννμμ κ²μνμ¬ λ¬Έμμ΄μ ꡬλΆν ν λΆλ¦¬λ κ° λ¬Έμμ΄λ‘ μ΄λ£¨μ΄μ§ λ°°μ΄ λ°ν
μΈμλ‘ λΉ λ¬Έμμ΄ μ λ¬νλ©΄ κ° λ¬Έμλ₯Ό λͺ¨λ λΆλ¦¬νκ³ , μΈμλ₯Ό μλ΅νλ©΄ λμ λ¬Έμμ΄ μ 체λ₯Ό λ¨μΌ μμλ‘ νλ λ°°μ΄ λ°ν
λ λ²μ§Έ μΈμλ‘ λ°°μ΄μ κΈΈμ΄ μ§μ (μ΅μ )