컴퓨터 세상/JavaScript

JavaScript - 문자열 비교, 문자열 연산자

Jimin Daddy 2020. 7. 25. 10:40

## 문자열 비교 (대소문자 구분함)

  - 문자열 비교시 사용되는 함수들

    String.localeCompare() : 인코딩 차이와 같은 다양성을 고려하는 문자열 비교 알고리즘.

  - String.toLowerCase() : 전부 소문자로 변경.

  - String.toUpperCase() : 전부 대문자로 변경.

  위의 2개의 함수로 소문자나 대문자로 변경 후 문자열을 비교하면 된다.

## 문자열 연산자

  - "+" 연산자는 두 문자열 피연산자를 이어 붙인다.

  ex) "hello" + " " + "John";  // hello John 이 됨.

       a = "2"; b = "2";

       c = a + b;  // 22가 됨

  - 두 문자열을 <, <=, >, >= 를 통하여 비교할 경우 비교의 기준은 알파벳 순서다.

    알파벳 순서는 Unicode 문자 인코딩 기준으로 모든 대문자는 모든 소문자보다 이전에 나타나므로 모든 소문자보다 작다.

  - "+" 연산자는 숫자 피연산자보다 문자열 피연산자에 우선권을 부여 한다.

    따라서 두 피연산자 중 하나가 문자열이면 다른 하나의 피연산자를 문자열로 반환하거나 두 피연산자 모두 문자열로 반환한 후 이어 붙인다.

  - 비교 연산자는 오직 두 피연산자가 문자열인 경우에 한해서 문자열 비교를 수행

    하나의 피연산자만 문자열일 경우 숫자로 변환하려 한다.

  ex) 1 + 2;  // 3

      "1" + "2";  // "12"

      "1" + 2;  // "12". 숫자 2를 "2"로 변환

      11 < 3;  // false. 숫자로 비교.

      "11" < "3";  //  true. 문자열 비교.

      "11" < 3;  // false. 문자 "11"을 숫자로 11로 변환.

      "one" < 3;  // false. 문자 "one"을 숫자로 변환하려 하므로 NaN값을 반환


  - "+" 연산자가 문자열과 숫자에 대해서 사용될 경우에는 결합 법칙이 성립되지 않을 수 있다.

    그 이유는 "+" 연산자는 왼쪽에서 오른쪽으로 적용 되기 때문

  ex) s = 1 + 2 + "blind mice";  // "3 blind mice". 왼쪽부터 적용하므로 1+2를 먼저 실행후 문자열과 합침.

      t = "blind mice : " + 1 + 2;  // blind mice : 12. 왼쪽 부터 적용하므로 blind mice 뒤의 숫자들을 문자로 변환하므로 3이 아닌 "blind mice" + "1" + "2" 가 됨.