Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS метод Global.decodeURI()

Загальний опис

decodeURI() - це вбудований метод в JavaScript, що дозволяє декодувати єдиний закодований компонент URI. Коли ми говоримо про URI, ми маємо на увазі Уніфікований Ідентифікатор Ресурсу, що є способом ідентифікації будь-якого ресурсу в інтернеті, будь то веб-сторінка, зображення або файл.

Спочатку розглянемо, навіщо потрібен decodeURI(). Подумайте про ситуації, коли ви хочете передати деякі параметри через URL, які можуть містити символи, які не допустимі в стандартних URL. Наприклад, пробіл або спеціальний символ. У таких випадках ці символи кодуються у вигляді, що може бути включений у URI. Тут decodeURI() може бути корисним, коли вам потрібно отримати ці параметри назад у їхньому первісному вигляді.

Розглянемо практичний приклад. Припустимо, у нас є такий URL: https://example.com/?name=Ivan%20Petrov. Якщо ми хочемо отримати ім'я користувача в зручному для читання форматі, нам потрібно використовувати decodeURI().

let encodedURI = "https://example.com/?name=Taras%20Shevchuk";
let decodedURI = decodeURI(encodedURI);
console.log(decodedURI); // виведе "https://example.com/?name=Taras 20Shevchuk"

Що стосується основних особливостей та прийомів роботи, decodeURI() відмінно справляється зі своєю основною задачею, але має деякі нюанси, які важливо розуміти. Цей метод не буде декодувати символи, які мають спеціальний зміст в URI, такі як :, /, ? та #.

Порада:

Для початківців важливо розуміти, що не кожний URI потребує декодування. Якщо URI не містить закодованих символів, використання decodeURI() може бути зайвим. Перед тим, як декодувати, завжди перевіряйте, чи дійсно URI містить закодовані символи.

Приклад:

let uri = "https://example.com/";
if (uri.includes('%')) {
   console.log(decodeURI(uri));
} else {
   console.log(uri);
}
Порада:

Для новачків важливо розуміти, що якщо ви викликаєте decodeURI() для вже декодованого URI, результат може бути не тим, чого ви очікуєте. Завжди переконуйтеся, що декодуєте URI лише один раз.

Порада:

Комбінуйте decodeURI() і decodeURIComponent(). В деяких випадках, вам може знадобитися декодувати лише частину URI. У такому випадку, вам може стати в нагоді комбінація обох методів. Поділіть URI на частини і декодуйте кожну частину окремо за потребою.

Приклад:

let uri = "https://example.com/?name=Taras%20Shevchuk&age=30";
let [baseUri, params] = uri.split('?');
let decodedParams = params.split('&').map(param => decodeURIComponent(param)).join('&');
let decodedUri = baseUri + "?" + decodedParams;
console.log(decodedUri); 

Таким чином, ви отримаєте повністю декодований URI, але лише для його частин, які потребують цього.

Синтаксис

decodeURI(encodedURI)

Параметри

*encodedURI

Повний закодований Uniform Resource Identifier (URI). Рядок, який раніше був закодований за допомогою encodeURI() або інших подібних методів.

Return

string

Повертає новий рядок, який представляє декодовану версію заданого закодованого Uniform Resource Identifier (URI).

Переглядачі

Переглядач

1

1

1.1

7

12

Переглядач

4.4

18

4

1

Переглядач

0.10.0

1.0

Приклади


У цьому прикладі користувач може вставити або ввести закодований URI у поле введення, а потім натиснути кнопку, щоб отримати його декодовану версію. Закодований URI може містити ряд символів, які були перетворені на відсотково кодовану форму. Функція decodeUriFunction() зчитує це значення, декодує його за допомогою decodeURI і виводить результат у параграфі з id "output".

У цьому прикладі ми маємо URI, який містить закодований параметр запиту. Ми використовуємо decodeURI для того, щоб декодувати закодований параметр і отримати зрозумілий текст "Приклад" замість послідовності символів %D0%9F%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4.

// Закодований URI, який містить параметри запиту
let encodedUri = "https://example.com/search?query=%D0%9F%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4";

// Використовуємо decodeURI для декодування URI
let decodedUri = decodeURI(encodedUri);

console.log(decodedUri); // Виведе: "https://example.com/search?query=Приклад"

У цьому прикладі ми перевіряємо, чи містить URI закодовані символи, перед тим як його декодувати. Це корисно для уникнення непотрібного декодування, якщо URI вже є у декодованому стані. Якщо URI містить символ %, це може вказувати на наявність закодованих символів, і тому ми використовуємо decodeURI для декодування цього URI. У виведеному результаті /dashboard буде відображатися як нормальний шлях, замість %2Fdashboard.

// URI, який містить спеціальні символи
let specialUri = "https://example.com/data?id=123&ref=%2Fdashboard";

// Перевірка на наявність закодованих символів перед декодуванням
if (specialUri.includes('%')) {
    console.log(decodeURI(specialUri)); // Виведе: "https://example.com/data?id=123&ref=/dashboard"
} else {
    console.log(specialUri);
}