Apply your JS skills to key Mozilla projects as an MDN Fellow! http://mzl.la/MDNFellowship

mozilla
검색 결과

    String

    개요

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

    문법

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

    'string text'
    "string text"

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

    String(thing)
    new String(thing)

    매개 변수

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

    설명

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

    문자 엑세스

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

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

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

    return 'cat'[1]; // returns "a"
    
    배열처럼 문자를 엑세스는 것은(위 두번째 방법) ECMAScript 3의 일부가 아닙니다. 이는 JavaScript와 ECMAScript 5의 기능입니다.

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

    프로퍼티

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

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

    메서드

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

    fromCharCode
    지정된 유니코 값의 순서를 이용하여 만든 문자열을 반환합니다.
    Methods inherited from Function:

    String 일반 메서드

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

    var num = 15;
    alert(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', 'fromCharCode'
            ],
            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 인스턴스

    프로퍼티

    constructor
    오브젝트의 프로토타입 생성에 지정된 함수입니다.
    length
    문자열의 길이가 반영됩니다.
    N
    N번째 위치의 문자 접근에 사용되는 N은 0과 length사이의 정수입니다. 이 프로퍼티는 읽기만 가능합니다.
    Properties inherited from Object:

    메서드

    Methods

    Methods unrelated to HTML

    charAt
    Returns the character at the specified index.
    charCodeAt
    Returns a number indicating the Unicode value of the character at the given index.
    concat
    Combines the text of two strings and returns a new string.
    contains

    Determines whether one string may be found within another string.

    endsWith
    Determines whether a string ends with the characters of another string.
    indexOf
    Returns the index within the calling String object of the first occurrence of the specified value, or -1 if not found.
    lastIndexOf
    Returns the index within the calling String object of the last occurrence of the specified value, or -1 if not found.
    localeCompare
    Returns a number indicating whether a reference string comes before or after or is the same as the given string in sort order.
    match
    Used to match a regular expression against a string.
    quote

    Wraps the string in double quotes (""").
    replace
    Used to find a match between a regular expression and a string, and to replace the matched substring with a new substring.
    search
    Executes the search for a match between a regular expression and a specified string.
    slice
    Extracts a section of a string and returns a new string.
    split
    Splits a String object into an array of strings by separating the string into substrings.
    startsWith
    Determines whether a string begins with the characters of another string.
    substr
    Returns the characters in a string beginning at the specified location through the specified number of characters.
    substring
    Returns the characters in a string between two indexes into the string.
    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.
    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.
    toLowerCase
    Returns the calling string value converted to lower case.
    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.
    toString
    Returns a string representing the specified object. Overrides the Object.prototype.toString method.
    toUpperCase
    Returns the calling string value converted to uppercase.
    trim
    Requires JavaScript 1.8.1
    Trims whitespace from the beginning and end of the string. Part of the ECMAScript 5 standard.
    trimLeft
    Requires JavaScript 1.8.1
    Trims whitespace from the left side of the string.
    trimRight
    Requires JavaScript 1.8.1
    Trims whitespace from the right side of the string.
    valueOf
    Returns the primitive value of the specified object. Overrides the Object.prototype.valueOf method.

    HTML wrapper methods

    Non-standard
    This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

    Should we change these to point to our own docs rather than W3C? In any case, they're staying as is for now because with the current structure of the HTML pages here at MDC, we cannot reference specific attributes as necessary anyway (e.g., the difference between the anchor method and the link method). Each of the following methods returns a copy of the string wrapped inside the appropriate HTML tag.

    anchor
    <a name="name"> (hypertext target)
    big
    <big>
    blink
    <blink>
    bold
    <b>
    fixed
    <tt>
    fontcolor
    <font color="color">
    fontsize
    <font size="size">
    italics
    <i>
    link
    <a href="url"> (link to URL)
    small
    <small>.
    strike
    <strike>
    sub
    <sub>
    sup
    <sup>

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

    Example

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

    var outputStrings = [];
    for (let 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,