lelouch_vi 2 Ответов: 1

В чем разница между .touppercase и .tolocaleuppercase?


Здравствуйте, сейчас я изучаю javascript. Я только начинаю с манипуляций со строками, но меня это немного смущает .toLowerCase и .toUpperCase

const Name = "john";
const Age = 19;

let sentence2 = `My name is ${Name} and my age is ${Age}`;
console.log(sentence2.toLocaleUpperCase(sentence2));;


когда я использую .toUppercase он отображает все буквы в верхнем регистре, но с .toLocaleUpperCase это дает мне эту ошибку

Uncaught RangeError: Incorrect locale information provided
at String.toLocaleUpperCase (<anonymous>)

Что я уже пробовал:

Я попытался погуглить ошибку и поискать ее в интернете, но все, что она говорит, это то, что .toLocaleUpperCase имеет какое-то отношение к различным местным языкам, а также к .toLocaleLowerCase Но то, что я пытаюсь манипулировать, - это английские символы.

Моя догадка заключается в том, что я получаю эту ошибку, потому что я объединяю Name и Age переменная внутри, а затем я попытался превратить ее в верхний или нижний регистр?

Gerry Schmitz

Ваш пример кода не имеет никакого отношения к вашему вопросу.

lelouch_vi 2

Здравствуйте, извините, я обновил вопрос и отредактировал код.

1 Ответов

Рейтинг:
7

OriginalGriff

Игнорируя это, вы не показываете нам точный код, который вы использовали для получения ошибки, но если вы получаете сообщение об ошибке, которое вы не понимаете, google его: Uncaught RangeError: неверная информация о локали, предоставленная в String.toLocaleUpperCase - поиск Google[^]
Первая ссылка объясняет, почему вы получаете ошибку: String.prototype.toLocaleUpperCase() - JavaScript | MDN[^]
Либо вы указываете недопустимую локаль при ее вызове, либо неверно настроена Локаль Вашего браузера.

Вполне возможно, что вы пытаетесь вызвать toLocaleUppercase, не читая документацию и не передавая строку для преобразования в качестве параметра функции, но мы не можем видеть ваш код, поэтому мы никогда не узнаем ...


Цитата:
привет, извини, я виноват. Я забыл отредактировать код после того, как вставил его. Теперь он обновлен.


И что же я сказал?
"Вполне возможно, что вы пытаетесь вызвать toLocaleUppercase, не читая документацию, и передать строку, которая будет преобразована в качестве параметра функции"

Именно это вы и делаете:
sentence2.toLocaleUpperCase(sentence2)
Если вы посмотрите документацию, то этот параметр представляет собой необязательную строку локали, чтобы точно указать, какую Локаль использовать, переопределяя настройки браузера. Вы не передаете свою строку для преобразования!

Попробуй:
console.log(sentence2.toLocaleUpperCase());


lelouch_vi 2

привет, извини, я виноват. Я забыл отредактировать код после того, как вставил его. Теперь он обновлен.

OriginalGriff

Никогда не редактируйте код после того, как вы его вставили: скопируйте и вставьте фактический код, который вы тестировали, или вы рискуете отправить нас в тупик, сделав еще одну ошибку при вводе кода, который, как вы думаете, вы использовали!

lelouch_vi 2

Привет, мне очень жаль, но теперь я все понял, спасибо за это
You don;t pass your string to convert! Я склонен упускать из виду вещи, когда я не понимаю что-то в своем коде, а затем, когда я просыпаюсь на следующий день, я вроде как получаю это с легкостью . Спасибо!

OriginalGriff

:смеяться:
Да, я знаю это чувство - я склонен читать то, что я хотел написать, а не то, что я на самом деле сделал ... :O

OriginalGriff

Ответ обновлен.

lelouch_vi 2

Теперь я понимаю разницу между ними. Спасибо!

OriginalGriff

Всегда пожалуйста!