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

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

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

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

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

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

JS метод Global.escape()

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

escape() - це метод JavaScript, який призначений для перетворення певних символів у рядку на їхні закодовані у вигляді URI еквіваленти. Цей метод був досить популярним в ранніх версіях JavaScript, але зараз він є застарілим і не рекомендується для використання в сучасних застосуваннях.

Спочатку розглянемо, навіщо потрібен escape(). В основному, його використовували для того, щоб перетворити символи у рядку, які могли б порушити структуру URL. Наприклад, пробіл, знак "&" або "?". Якщо такі символи вставити безпосередньо у URL, це може призвести до проблем.

Приклад:

let url = "http://example.com?name=" + escape("John Doe");

У цьому прикладі, якщо не використовувати escape(), пробіл між "John" та "Doe" міг б порушити структуру URL.

Однак, існують і інші методи, такі як encodeURIComponent() і encodeURI(), які виконують подібні завдання, але з деякими важливими відмінностями. escape() не кодує символи такі як "@", "*", "-" і "_", тоді як encodeURIComponent() це робить.

Основні особливості та прийоми роботи з escape():

  1. escape() кодує символи, які не є латинськими літерами, цифрами, а також деякими спеціальними символами, такими як "@", "*", "-" і "_".
  2. Кодування відбувається шляхом заміни символу на "%", за яким слідує два шістнадцяткових символи.

Приклад:

let text = "Hello, World!";
let encodedText = escape(text);
console.log(encodedText); // Hello%2C%20World%21

Для програмістів-початківців важливо розуміти, що, хоча escape() і корисний у певних ситуаціях, його застосування у сучасному програмуванні обмежене. Існують кращі та безпечніші методи для кодування URI, такі як encodeURIComponent() і encodeURI().

Нотатка:

Важливо знати, які символи кодуються escape() та іншими сучасними методами. Особливо, якщо ви намагаєтеся декодувати або аналізувати закодовані рядки. Наприклад, символ "@" не буде закодований методом escape(), але буде закодований за допомогою encodeURIComponent().

Нотатка:

Якщо з якоїсь причини вам потрібно працювати з рядками, які були закодовані за допомогою escape(), використовуйте unescape() для правильного декодування цих рядків. Проте пам'ятайте, що для рядків, закодованих за допомогою encodeURIComponent() або encodeURI(), потрібно використовувати decodeURIComponent() та decodeURI() відповідно.

Порада:

Якщо ви працюєте над старим проектом або вивчаєте старий код, ви можете зустріти використання escape(). В такому випадку рекомендується замінити його на сучасніший метод кодування для забезпечення найкращої сумісності та безпеки.

Синтаксис

escape(str)

Параметри

*str

Рядок, який потрібно закодувати.

Return

string

Повертає новий рядок, в якому певні символи були замінені на їхні закодовані еквіваленти.

Переглядачі

Переглядач

1

1

1

3

12

Переглядач

4.4

18

4

1

Переглядач

0.10.0

1.0

Приклади


Цей приклад демонструє, як користувач може ввести рядок у текстове поле та отримати його закодовану версію за допомогою функції escape(). Після введення рядка користувач може натиснути кнопку "Кодувати", і закодована версія рядка відобразиться нижче.

У цьому прикладі ми маємо рядок specialString із спеціальними символами (кома, пробіл та знак питання). Використовуючи метод escape(), ми кодуємо ці спеціальні символи у відсотковий формат. Результатом є рядок "Привіт%2C%20як%20ти%3F", де "%2C" відповідає комі, "%20" - пробілу, та "%3F" - знаку питання.

// Ініціалізація рядка зі спеціальними символами
let specialString = "Привіт, як ти?";

// Використання escape() для кодування рядка
let escapedString = escape(specialString);

console.log(escapedString);  // Виведе: "Привіт%2C%20як%20ти%3F"

У цьому прикладі рядок nonASCIIString містить не-ASCII символи (китайські ієрогліфи для слова "Токіо"). Коли ми використовуємо метод escape() для таких символів, він кодує їх у форматі "%uXXXX", де "XXXX" - це шіснадцяткове представлення символа. У нашому випадку, результатом буде рядок "%u674E%u4EAC", який відповідає ієрогліфам "東" та "京" відповідно.

// Ініціалізація рядка із не-ASCII символами
let nonASCIIString = "Місто: 東京";

// Використання escape() для кодування рядка
let escapedNonASCII = escape(nonASCIIString);

console.log(escapedNonASCII);  // Виведе: "%u674E%u4EAC"