Pront/Javascript

[Javascript] 문자열과 String()

soyeonisgood 2022. 9. 24. 16:05

String

  • 문자열 처리를 위한 프로퍼티 및 메소드 제공
  • 일반적인 문자열과 String Object는 다르게 취급된다

 

String 생성자 및 정적 메소드

생성자 설명
String(thing) 주어진 문자열로 String 객체 생성
주요 정적 속성 설명
String.prototype String 객체의 프로토타입
주요 정적 메소드 설명
String.fromCharCode(num1[, ...[, numN]]) 주어진 UTF-16 코드 유닛 N개로 이루어진 문자열

 

String() 주요 메소드

 


String() 주요 메소드 활용 예제

 

일반적인 문자열 리터널 !== String Object

var s1 = "java"; // 문자 리터널
var s2 = new String("java"); // 객체

console.log(typeof(s1)); // "string"
console.log(typeof(s2)); // "object"

console.log(s1==="java"); // true
console.log(s2==="java"); // false
console.log(s2=="java"); // true

console.log(s1 == s2); // true
console.log(s1 === s2); // false  

console.log(s2.valueOf()); // java
console.log(s2.valueOf() === "java"); // true

s1 = "2+2";
s2 = new String("2+2");

console.log(eval(s1)); // 4
console.log(eval(s2)); // String {}
console.log(eval(s2.valueOf()) ); // 4

 

주요 메소드 예제

  • 속성명이 잘못되면(오타) 에러가 아님. 그 속성을 새로 추가하므로 주의해야한다.
var s1, s2;

s1 = "seoul korea";
s2 = s1.length; // 문자열 길이
	// length 같은 속성명이 잘못되면 에러로 표시하지 않고 속성을 추가하므로 주의해야함
console.log(s2); // 11

s2 = s1.charAt(6); // 문자열에서 index 위치의 문자 반환
console.log(s2); // 'k'

s2 = s1.substring(6,9); // s 인덱스에서 e-1 인덱스까지의 문자열
console.log(s2); // 'kor'

s2 = s1.substring(6); // s 인데스에서 마지막 문자열가지
console.log(s2); // 'korea'

s2 = s1.substr(6,3); // s 인덱스에서 len 개수만큼의 문자열
console.log(s2); // 'kor'

s2 = s1.substr(6); // s 인덱스에서 마지막 문자열까지
console.log(s2); // 'korea'

s2 = s1.indexOf('o'); // 처음부터 비교해서 해당 문자열의 인덱스 반환. 없으면 -1
console.log(s2); // 2

s2 = s1.lastIndexOf('o'); // 마지막 문자열부터 비교해서 해당 문자열의 인덱스 반환. 없으면 -1
console.log(s2); // 7

s2 = s1.indexOf('java');
console.log(s2); // -1

s2 = s1.toUpperCase(); // 모든 영문자를 대문자로
console.log(s2);

s2 = s2.toLowerCase(); // 모든 영문자를 소문자로
console.log(s2);

console.log(s1 === "seoul"); // false
console.log(s1.startsWith("seoul")); // true
console.log(s1.startsWith("korea")); // false
console.log(s1.startsWith("korea", 6)); // true
console.log(s1.endsWith("korea")); // true

s1 = '        자         바       ';
s2 = ':' + s1 + ':';
console.log(s2);

s2 = ':' + s1.trim() + ':'; // 왼쪽, 오른쪽 공백 제거
console.log(s2);

s1 = 'javascript,html,css';
s2 = s1.split(','); // 문자열을 구분자로 분류한 부분 문자열을 담은 배열을 반환
for(let n=0; n<s2.length; n++) {
	console.log(s2[n]);
}

s1 = '대한 우리대한 한국 대한';
s2 = s1.replace(/대한/, '大韓'); // /.../: 정규식
console.log(s2); // 大韓 우리대한 한국 대한

s2 = s1.replace(/대한/g, '大韓'); // g(global): 모두 
console.log(s2); // 大韓 우리大韓 한국 大韓

s2 = s1.replaceAll('대한', '大韓');  
console.log(s2); // 大韓 우리大韓 한국 大韓