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():
escape()кодує символи, які не є латинськими літерами, цифрами, а також деякими спеціальними символами, такими як "@", "*", "-" і "_".- Кодування відбувається шляхом заміни символу на "%", за яким слідує два шістнадцяткових символи.
Приклад:
let text = "Hello, World!";
let encodedText = escape(text);
console.log(encodedText); // Hello%2C%20World%21
Для програмістів-початківців важливо розуміти, що, хоча escape() і корисний у певних ситуаціях, його застосування у сучасному програмуванні обмежене. Існують кращі та безпечніші методи для кодування URI, такі як encodeURIComponent() і encodeURI().
| Нотатка: | Важливо знати, які символи кодуються |
| Нотатка: | Якщо з якоїсь причини вам потрібно працювати з рядками, які були закодовані за допомогою |
| Порада: | Якщо ви працюєте над старим проектом або вивчаєте старий код, ви можете зустріти використання |
Синтаксис
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"
