본문 바로가기

JavaScript

내장 객체 - String

자바스크립트에서 문자열을 저장하고 싶을 때에는 다음과 같이 문자리터럴을 변수에 담아주면 string 타입의 변수가 된다.

var str = "java";

또한, 문자열을 다음과 같이 선언할 수 있다.

var str = new String("java");

new 키워드를 통해 변수를 생성하게 되면 실행속도가 느리기 때문에 사용하지 않는 것이 좋다.

 

		var str1 = "java";	// string
		var str2 = new String("java");	// object

		if(str1 == str2){	// 내용 비교
			document.write("true");	
		} else{
			document.write("false");
		}

		if(str1 === str2){	// 내용 및 자료형 비교
			document.write("true");
		} else{
			document.write("false");
		}


위와 같이 둘을 선언한 후에 typeof를 사용하게 되면 리터럴을 바로 담은 변수는 string이고 객체로 생성하게 되면 object가 된다.

둘을 비교해보면 str1 == str2을 비교하게 되면 내용만 비교하게 되어 같은 데이터라고 나온다.(자바스크립트에서는 equals()메소드가 없음

하지만 자료형까지 비교하는 '==='연산자를 사용하게 되면 결과는 false가 나온다.

 

이 결과를 통해 자바와 자바스크립트의 문자열의 차이점이 나타난다.

자바는 String이라는 클래스만 존재하고 기본타입이 존재하지 않는다.

반면에 자바스크립트에서는 string이라는 기본타입(primitive type)이 있고 기본타입을 객체로 감싸 쓸 수 있는 String 객체가 존재한다.

자바스크립트에서 메소드를 쓰기위해선 string을 객체로 감싸준 후에 사용할 수 있다.

 

# String 객체 함수

		var str = "java";
		document.write(typeof(str));
		document.write(str.length+"
"); // length : 속성 document.write(str.indexOf("j")+"
"); document.write(str.slice(0, -3) + "
"); // 음수일 경우 (문자열 길이 - num) document.write(str.substring(0, 2)+"
"); document.write(str.substr(4, 4)+"
");


다음과 같이 기본형타입으로 메소드를 사용할 수 있다. 자바스크립트에서 자동으로 형변환을 통해 객체로 변경한 후에 메소드를 사용하기 때문에 가능하다.

 

 

 

'JavaScript' 카테고리의 다른 글

Node interface  (0) 2016.04.07
HTML DOM 함수 - document interface  (0) 2016.04.06
DOM  (0) 2016.04.06
Array  (0) 2016.04.04
변수 지역성  (0) 2016.04.04