NATIVE

settings_applicationsObject  >   settings_applicationsString

NATIVE

Editing
  • bug_report

Constructor

새로운 문자열 생성은 리터럴(literal)과 생성자 함수 모두 가능하다. 일반적으로 리터럴을 권장한다.

구문

형식
str = "Hello"

리터럴로 문자열 데이터를 생성한다. 생성된 문자열 데이터의 타입은 'string'이다.

형식
new String(value)

Prototype 체인

String

  • Properties

    • length

      문자열의 길이를 조회한다.

  • Methods

    • @@iterator

      이터러블 프로토콜(iterable protocol)을 준수하는 반복 가능한 반복자를 반환한다. 문자열 값의 유니코드 코드 포인트를 개별 문자열로 처리하여 반복한다.

    • at()

      지정된 정수 값을 인덱스로 갖는 문자를 반환한다.

    • charAt()

      지정된 오프셋에 있는 단일 UTF-16 코드 단위로 구성된 문자열을 반환한다.

    • charCodeAt()

      지정된 인덱스에 대한 UTF-16 코드를 나타내는 0부터 65535 사이의 정수를 반환한다.

    • codePointAt()

      지정된 인덱스의 문자에 대한 유니코드 코드 포인트 값을 반환한다.

    • concat()

      지정된 모든 문자열을 현재 문자열과 연결하여 새로운 문자열로 반환한다.

    • endsWith()

      지정된 문자열로 끝나는지를 검사한다. 대소문자를 구분한다.

    • includes()

      현재 문자열에 지정된 문자열이 포함되었는지를 검사한다. 대소문자를 구분한다.

    • indexOf()

      현재 문자열에서 지정된 문자열과 일치가 처음으로 시작되는 인덱스를 반환한다. 일치하지 않으면 -1을 반환한다. 대소문자를 구분한다.

    • isWellFormed()

      현재 문자열에 단독 서러게이트(surrogate)가 포함되어 있는지 여부를 불리언(boolean)으로 반환한다.

    • lastIndexOf()

      현재 문자열에서 지정된 문자열을 검색하여 마지막으로 시작되는 인덱스를 반환한다. 대소문자를 구분한다.

    • localeCompare()

      지정된 문자열이 정렬상 현재 문자열 뒤에 있으면 음수, 그 반대의 경우는 양수, 동등한 경우에는 0을 반환한다.

    • match()

      현재 문자열이 지정된 정규식과 매칭되는 부분을 테스트한다.

    • matchAll()

      현재 문자열에 캡처 그룹을 포함하여 지정된 정규표현식에 일치하는 모든 결과의 반복자를 반환한다.

    • normalize()

      현재 문자열을 유니코드 정규화 방식(Unicode Normalization Form)에 따라 정규화된 형태로 반환한다. 만약에 주어진 값이 문자열이 아닐 경우에는 우선 문자열로 강제 변환 후 정규화한다.

    • padEnd()

      현재 문자열에 지정된 길이만큼 지정된 문자로 채워 새로운 문자열로 반환한다.

    • padStart()

      현재 문자열의 시작을 지정된 문자열로 채워 지정된 길이를 갖는 새로운 문자열을 반환한다.

    • repeat()

      현재 문자열을 지정된 횟수만큼 반복해 붙인 새로운 문자열을 반환한다.

    • replace()

      현재 문자열에서 지정된 문자열 또는 정규표현식에 일치하는 일부 또는 전부가 지정된 대체 문자열(또는 함수의 반환값)로 교체된 새로운 문자열을 반환한다.

    • replaceAll()

      현재 문자열에서 지정된 문자열 또는 정규표현식에 일치하는 전부가 지정된 대체 문자열(또는 함수의 반환값)로 교체된 새로운 문자열을 반환한다.

    • search()

      지정된 정규표현식에 따라 현재 문자열을 검색하여 일치하는 첫 번째 문자열의 시작 인덱스 반환한다.

    • slice()

      현재 문자열에서 지정된 범위에 따라 문자열의 일부를 추출하여 새로운 문자열로 반환한다.

    • split()

      현재 문자열을 지정된 분리자(separator)로 분리하여 배열로 반환한다.

    • startsWith()

      현재 문자열이 지정된 특정 문자로 시작하는지를 검사하여 그 결과를 불리언(boolean)으로 반환한다. 대소문자를 구분한다.

    • substring()

      현재 문자열에서 지정된 시작 인덱스에서 부터 종료 인덱스 전까지 추출하여 새로운 문자열로 반환한다.

    • toLocaleLowerCase()

      현재 문자열을 지역(locale)에 따라 소문자로 변환하여 반환한다.

    • toLocaleUpperCase()

      현재 문자열을 지역(locale)에 따라 대문자로 변환하여 반환한다.

    • toLowerCase()

      현재 문자열을 소문자로 변환하여 새로운 문자열로 반환한다.

    • toString()

      현재 String 객체를 나타내는 문자열을 반환한다.

    • toUpperCase()

      현재 문자열을 대문자로 변환하여 새로운 문자열로 반환한다.

    • toWellFormed()

      현재 문자열의 모든 단독 서러게이트(surrogate)가 유니코드 대체 문자 U+FFFD로 대체되는 문자열을 반환한다.

    • trim()

      현재 문자열의 양 끝쪽에 있는 공백 문자(공백, 공백없음, 탭, 모든 행 종결자 등)을 제거한다.

    • trimEnd()

      현재 문자열의 끝쪽에 있는 공백을 제거한다.

    • trimStart()

      현재 문자열의 앞쪽에 있는 공백을 제거한다.

    • valueOf()

      현재 String 객체의 원시값(primitive)을 반환한다.

Object

  • Methods

    • hasOwnProperty()

      객체가 특정 프로퍼티를 가지고 있는지를 블린(boolean) 값으로 반환한다.

    • isPrototypeOf()

      해당 객체가 다른 객체의 프로토타입 체인에 속한 객체인지를 체크한다.

    • propertyIsEnumerable()

      매개 변수의 속성이 열거가능(enumerable)한지 여부를 체크한다.

    • toLocaleString()

      객체를 나타내는 문자열을  작동하는 지역(locale)의 방식으로 출력이 된다.

    • toString()

      객체를 나타내는 문자열을 반환한다.

    • valueOf()

      객체의 원시(primitive) 값을 반환한다.

  • Properties

    • constructor

      객체의 생성자 함수를 참조한다.

    • __proto__

      상속된 [[Prototype]] 참조하거나 설정가능하며 일반적으로 실제 코드상에서는 잘 사용되지 않는다. ECMAScript에서 사용되지 않는 비표준이지만 최신 웹브라우저에서는 비공식적으로 지원하고 있다. 따라서 곧 표준 속성으로 지원될 확률이 높다.

      현재는 표준 사양에 명시되었다.

기술 문서

문자열 데이터를 리터럴(Literal)로 생성하는 것과 String 객체의 생성자 함수를 통해 생성하는 것에 대한 비교를 해보자.

일반 리터럴(Literal)로 생성하는 경우에는 typeof 연산자로 체크해보면 'string'로 확인이 되고 String 객체의 생성자 함수로 생성된 경우에는 'object'로 분류한다. 비록 문자열 자체는 같지만 데이터의 타입은 다르다.

코드를 작성하다 보면 리터럴로 문자열 데이터를 생성하는 것이 일반적이지만 경우에 따라서는 생성자를 이용한 문자열 데이터 생성이 사용되는 경우도 있다. 따라서 다음의 코드를 참고하여 불필요한 시간 낭비를 하지 않도록 하자.

var str1 = "Hello";
var str2 = new String("Hello");
var str3 = new String("Hello");

typeof str1; // "string"로 확인
typeof str2; // "object"로 확인

str1 == str2; // true
str2 == str3; // false

지원 웹브라우저