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().

автор: Bond

Порада

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

автор: Bond
Нотатка

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

автор: Bond
Нотатка

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

автор: Bond

Синтаксис

escape(str)

Параметри

str

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

автор: Bond

Повернення

string

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

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 3 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

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

автор: Bond

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

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

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

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

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

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

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

console.log(escapedNonASCII);  // Виведе: "%u674E%u4EAC"
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід