자바스크립트에서 문자열을 저장하고 싶을 때에는 다음과 같이 문자리터럴을 변수에 담아주면 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 |