String

공헌자 숫자: 2명

현재 번역은 완벽하지 않습니다. 한국어로 문서 번역에 동참해주세요.

String 글로벌 오브젝트는 문자열의 생성자, 또는 문자열의 순서입니다.

문법

문자 리터럴의 다음의 형식을 취합니다:

'string text'
"string text"
"中文 español English हिन्दी العربية português বাংলা русский 日本語 ਪੰਜਾਬੀ 한국어 தமிழ்"

Since EcmaScript 6 String literals can also be so-called Template Strings:

`hello world`
`hello!
 world!`
`hello ${who}`
escape `<a>${who}</a>`

Beside regular, printable characters, special characters can be encoded using escape notation:

Code Output
\0 the NUL character
\' single quote
\" double quote
\\ backslash
\n new line
\r carriage return
\v vertical tab
\t tab
\b backspace
\f form feed
\uXXXX unicode codepoint
\xXX the Latin-1 character

또는, String 글로벌 오브젝트 직접 사용할 수 있습니다:

String(thing)
new String(thing)

매개 변수

thing
무엇이든 문자열로 변환할 수 있습니다.

설명

문자열은 텍스트 형태로 표현될 수있는 데이터를 보관하는 데 유용합니다. 문자열에서 가장 많이 사용되는 작업중 일부는 문자열의 길이(length)를 체크하는 것미며, + 와 += 문자열 연산자를 이용하여 문자열을 연결하고 생성하고, substring()과 substr() 메서드로 문자열의 존재나 위치를 확인할 수 있습니다.

문자 엑세스

문자열은 개개의 문자에 접근할 수있는 두가지 방법을 제공합니다. 첫번째는 charAt() 메서드를 이용하는 것입니다:

return 'cat'.charAt(1); // returns "a"

다른 방법은 문자열을 배열과 같은 오브젝트로 취급 하여, 숫자 인덱스에 해당하는 각각의 문자에 접근합니다 :

return 'cat'[1]; // returns "a"

브라켓([ ]) 표기법을 사용하여 문자를 엑세스 하여 , 값을 삭제하거나 프로퍼티에 값의 할당을 시도하는 것은 성공할 수 없습니다. 프로퍼티와 관련하여서는 작성할 수도 수정할 수도 없습니다. (더 자세한 정보는 Object.defineProperty()를 참고 바랍니다 .)

문자열 비교

C 개발자는 문자열 비교를 위한 strcmp() 함수를 가지고 있습니다. JavaScript에서는 단지 less-than와 greater-than 연산자를 사용하면 됩니다 :

var a = "a";
var b = "b";
if (a < b) { // true
  print(a + " is less than " + b);
} else if (a > b) {
  print(a + " is greater than " + b);
} else {
  print(a + " and " + b + " are equal.");
}

비슷한 방법으로 String 인스턴스에서 상속된 localeCompare() 메서드를 사용할 수 있습니다.

문자열 원형과 String 오브젝트의 차이

주의 Javascript는 String 오브젝트와 원형의 문자열을 구분합니다. (Boolean의 true와 숫자도 마찬가지입니다.)

글자 그대로의 문자열(작은 따옴표 또는 큰 따옴표 표시)과 생성자없이(즉. new 키워드를 사용하지 않고) String을 호출하여 반환된 문자열은 원형의 문자열입니다. JavaScript에서 String 오브젝트는 자동으로 원형의 문자열로 변환되기 때문에 원형문자열 사용을 위한 방법으로 String 오브젝트를 사용하는 것도 가능합니다. 문맥 안의 메서드에서 프로퍼티 조회 또는 원형의 문자열 호출이 발생하면, JavaScript는 자동으로 문자열 원형을 감싸고 프로퍼티 조회를 수행 하거나 메서드를 호출합니다.

var s_prim = "foo";
var s_obj = new String(s_prim);

console.log(typeof s_prim); // Logs "string"
console.log(typeof s_obj);  // Logs "object"

문자열 원형과 String 오브젝트는 eval을 사용할때 다른 결과를 제공한다. 원형을 eval()에 전달하면 소스 코드로 취급한다; String 오브젝트는 다른 모든 오브젝트로 처럼 취급하며 오브젝트를 반환합니다. 예를 들면:

s1 = "2 + 2";               // creates a string primitive
s2 = new String("2 + 2");   // creates a String object
console.log(eval(s1));      // returns the number 4
console.log(eval(s2));      // returns the string "2 + 2"

이러한 이유로, 비록 eval()에 원형의 문자열 대신 String 오브젝트를 사용하면 코드가 손상될 수 있지만 일반적인 개발자는 차이를 걱정할 필요는 없습니다.

String 오프젝트는 언제든지 valueOf() 메서드로 원형에 대응하도록 전환할 수 있습니다.

console.log(eval(s2.valueOf())); // returns the number 4
Note: For another possible approach to strings in JavaScript, please read the article about StringView — a C-like representation of strings based on typed arrays.

프로퍼티

For properties available on String instances, see Properties of String instances.

String.prototype
String 오브젝트는 프로퍼티의 추가가 가능합니다.
Properties inherited from Function:

메서드

For methods available on String instances, see Methods of String instances.

String.fromCharCode()
지정된 유니코 값의 순서를 이용하여 만든 문자열을 반환합니다.
String.fromCodePoint()
Returns a string created by using the specified sequence of code points.
String.raw()
Returns a string created from a raw template string.
Methods inherited from Function:

String 일반 메서드

String 인스턴스 메서드는 JavScript 1.6으로 Firefox에서(ECMAScript 표준에 속하지는 않지만) 어떤 오브젝트라도 String 메서드에 적용하여 String 오브젝트에서 사용가능합니다:

var num = 15;
console.log(String.replace(num, /5/, '2'));

일반적으로 Array 메서드도 사용가능합니다.

다음은 지원하지 않는 브라우저를 지원하기 위한 방법입니다:

/*globals define*/
// Assumes all supplied String instance methods already present (one may use shims for these if not available)
(function () {
  'use strict';

  var i,
    // We could also build the array of methods with the following, but the
    //   getOwnPropertyNames() method is non-shimable:
    // Object.getOwnPropertyNames(String).filter(function (methodName) {
    //    return typeof String[methodName] === 'function';
    // });
    methods = [
      'quote', 'substring', 'toLowerCase', 'toUpperCase', 'charAt', 
      'charCodeAt', 'indexOf', 'lastIndexOf', 'startsWith', 'endsWith', 
      'trim', 'trimLeft', 'trimRight', 'toLocaleLowerCase', 
      'toLocaleUpperCase', 'localeCompare', 'match', 'search', 
      'replace', 'split', 'substr', 'concat', 'slice'
    ],
    methodCount = methods.length,
    assignStringGeneric = function (methodName) {
      var method = String.prototype[methodName];
      String[methodName] = function (arg1) {
        return method.apply(arg1, Array.prototype.slice.call(arguments, 1));
      };
    };

    for (i = 0; i < methodCount; i++) {
      assignStringGeneric(methods[i]);
    }
}());

String 인스턴스

프로퍼티

String.prototype.constructor
Specifies the function that creates an object's prototype.
String.prototype.length
Reflects the length of the string.
N
Used to access the character in the Nth position where N is a positive integer between 0 and one less than the value of length. These properties are read-only.

메서드

Methods unrelated to HTML

String.prototype.charAt()
Returns the character at the specified index.
String.prototype.charCodeAt()
Returns a number indicating the Unicode value of the character at the given index.
String.prototype.codePointAt()
Returns a non-negative integer that is the UTF-16 encoded code point value at the given position.
String.prototype.concat()
Combines the text of two strings and returns a new string.
String.prototype.includes()
Determines whether one string may be found within another string.
String.prototype.endsWith()
Determines whether a string ends with the characters of another string.
String.prototype.indexOf()
Returns the index within the calling String object of the first occurrence of the specified value, or -1 if not found.
String.prototype.lastIndexOf()
Returns the index within the calling String object of the last occurrence of the specified value, or -1 if not found.
String.prototype.localeCompare()
Returns a number indicating whether a reference string comes before or after or is the same as the given string in sort order.
String.prototype.match()
Used to match a regular expression against a string.
String.prototype.normalize()
Returns the Unicode Normalization Form of the calling string value.
String.prototype.quote()
Wraps the string in double quotes (""").
String.prototype.repeat()
Returns a string consisting of the elements of the object repeated the given times.
String.prototype.replace()
Used to find a match between a regular expression and a string, and to replace the matched substring with a new substring.
String.prototype.search()
Executes the search for a match between a regular expression and a specified string.
String.prototype.slice()
Extracts a section of a string and returns a new string.
String.prototype.split()
Splits a String object into an array of strings by separating the string into substrings.
String.prototype.startsWith()
Determines whether a string begins with the characters of another string.
String.prototype.substr()
Returns the characters in a string beginning at the specified location through the specified number of characters.
String.prototype.substring()
Returns the characters in a string between two indexes into the string.
String.prototype.toLocaleLowerCase()
The characters within a string are converted to lower case while respecting the current locale. For most languages, this will return the same as toLowerCase().
String.prototype.toLocaleUpperCase()
The characters within a string are converted to upper case while respecting the current locale. For most languages, this will return the same as toUpperCase().
String.prototype.toLowerCase()
Returns the calling string value converted to lower case.
String.prototype.toSource()
Returns an object literal representing the specified object; you can use this value to create a new object. Overrides the Object.prototype.toSource() method.
String.prototype.toString()
Returns a string representing the specified object. Overrides the Object.prototype.toString() method.
String.prototype.toUpperCase()
Returns the calling string value converted to uppercase.
String.prototype.trim()
Trims whitespace from the beginning and end of the string. Part of the ECMAScript 5 standard.
String.prototype.trimLeft()
Trims whitespace from the left side of the string.
String.prototype.trimRight()
Trims whitespace from the right side of the string.
String.prototype.valueOf()
Returns the primitive value of the specified object. Overrides the Object.prototype.valueOf() method.
String.prototype[@@iterator]()
Returns a new Iterator object that iterates over the code points of a String value, returning each code point as a String value.

HTML wrapper methods

These methods are of limited use, as they provide only a subset of the available HTML tags and attributes.

String.prototype.big()
<big>
String.prototype.blink()
<blink>
String.prototype.bold()
<b>
String.prototype.fixed()
<tt>
String.prototype.fontcolor()
<font color="color">
String.prototype.fontsize()
<font size="size">
String.prototype.italics()
<i>
String.prototype.link()
<a href="rul"> (link to URL)
String.prototype.small()
<small>
String.prototype.strike()
<strike>
String.prototype.sub()
<sub>
String.prototype.sup()
<sup>

Example

비록 아직도 일반적으로 기본 toString()을 호출하지만, "안전한" toString() 대안으로 String을 사용하는 것이 가능하며, null과 undefined에도 적용됩니다. 예를 들면:

var outputStrings = [];
for (var i = 0, n = inputValues.length; i < n; ++i) {
  outputStrings.push(String(inputValues[i]));
}

브라우저 호환성

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 0.2 (Yes) 9.0 (Yes) (Yes)
Feature Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)

 

문서 태그 및 공헌자

태그: 
Contributors to this page: teoli, MoGi
최종 변경: teoli,
사이드바 숨기기