angularjs에서 JS에 대한lowercase와 uppercase의 보완

1926 단어
angularjs의 원본을 읽고 시작합니다.
   var lowercase = function (string) {
        return isString(string) ? string.toLowerCase() : string;
    };

    var uppercase = function (string) {
        return isString(string) ? string.toUpperCase() : string;
    };

  function isString(value) {
        return typeof value == 'string';
    }

보아하니 대소문자가 서로 바뀌는 것 같지만angular.js는 js의 to Lower Case에 이상이 생길 수 있도록 두 가지 방법을 추가했습니다.
    if ('i' !== 'I'.toLowerCase()) {
        lowercase = manualLowercase;
        uppercase = manualUppercase;
    }

    var manualLowercase = function (s) {
        return isString(s)
            ? s.replace(/[A-Z]/g, function (ch) {
            return String.fromCharCode(ch.charCodeAt(0) | 32);
        })
            : s;
    };
    var manualUppercase = function (s) {
        return isString(s)
            ? s.replace(/[a-z]/g, function (ch) {
            return String.fromCharCode(ch.charCodeAt(0) & ~32);
        })
            : s;
    };

manualLowercase 를 자세히 설명하는 방법
먼저 문자열인지 아닌지를 판단하고 문자열에서'A-Z'의 알파벳이 바뀌면'A-Z'를 교체하는 것은 그에 대응하는 소문자'a-z'입니다.
"A.charCodeAt(0)"==>65
"A.charCodeAt(0)|32"==>97
"String.fromCharCode(97)"==>a
내가 익숙하지 않은 비트 연산자를 통해 이렇게 대소문자의 상호작용을 완성했고 사실은 좀 교묘해서 배웠다.

좋은 웹페이지 즐겨찾기