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"