Этот метод интерпретирует значение String как последовательность кодовых точек в кодировке UTF-16, как описано в пункте 6.1.4.
Выполняет следующие шаги при вызове:
1. Пусть О будет ? RequireObjectCoercible(значение this). 2. Пусть S будет ? ToString(O). 3. Пусть sText будет ! StringToCodePoints(S). 4. Пусть lowerText будет результатом toLowercase(sText) в соответствии с алгоритмом "Преобразования Регистра Unicode По Умолчанию". 5. Пусть L будет ! CodePointsToString(lowerText). 6. Вернуть L
Результат должен быть получен в соответствии с нечувствительными к языку сопоставлениями регистра в базе данных символов Юникода (это явно включает не только файл UnicodeData.txt, но и все нечувствительные к языку сопоставления в сопровождающем его файле SpecialCasings.txt).
Отображение регистра некоторых кодовых точек может давать несколько кодовых точек. В этом случае длина результирующей строки может отличаться от длины исходной строки. Поскольку и toUpperCase, и toLowerCase имеют контекстно-зависимое поведение, функции не являются симметричными. Другими словами, s.toUpperCase().toLowerCase() не обязательно равно s.toLowerCase().
Функция toLowerCase намеренно является универсальной; она не требует, чтобы значение this было объектом String. Следовательно, его можно передать другим видам объектов для использования в качестве метода.
Информационные ссылки
Стандарт ECMAScript — https://tc39.es/ecma262/#sec-string.prototype.tolowercase