В коде некоторых библиотек (например, AngularJS ссылка приводит к определенным строкам в коде), я вижу, что пользовательский вместо стандартных используются функции преобразования case. Это оправдано предположением, что в браузерах с турецким языком стандартные функции работают не так, как ожидалось:
console.log("SCRIPT".toLowerCase()); // "scrıpt"
console.log("script".toUpperCase()); // "SCRİPT"
Но действительно ли это или когда-либо было? Действительно ли браузеры ведут себя так? Если да, то кто из них? Как насчет node.js? Другие двигатели JS?
Существование методов toLocaleLowerCase
и toLocaleUpperCase
подразумевает, что toLowerCase
и toUpperCase
являются локально-инвариантными, не так ли?
Для каких браузеров команда Angular сохраняет эту проверку в коде: if ('i' !== 'I'.toLowerCase())...
?
Если ваш браузер (устройство) использует турецкий или азербайджанский язык, запустите этот фрагмент и напишите мне, если вы обнаружите, что проблема действительно существует.
if ('i' !== 'I'.toLowerCase()) {
document.write('Ooops! toLowerCase is locale-sensitive in your browser. ' +
'Please write your user-agent in the comments to this question: ' +
navigator.userAgent);
} else {
document.write('toLowerCase isn\'t locale-sensitive in your browser. ' +
'Everything works as expected!');
}
<html lang="tr">