¿Cómo codificar correctamente una URL en JavaScript? Diferencia entre encodeURI, encodeURIComponent y escape
¡Hola a todos! Soy nuevo en JavaScript y me encontré con un problema al trabajar con URL. Necesito enviar una solicitud GET al servidor con parámetros que contienen caracteres especiales, por ejemplo, espacios, cirílico o signos de interrogación.
Aquí hay un ejemplo de mi código:
```javascript
let baseUrl = "https://api.example.com/search";
let query = "JavaScript & HTML/CSS уроки";
let fullUrl = baseUrl + "?q=" + query;
fetch(fullUrl)
.then(response => response.json())
.then(data => console.log(data));
```
Este código no funciona porque en la URL hay espacios y el símbolo `&`. Busqué en Google y encontré tres funciones: `escape()`, `encodeURI()` y `encodeURIComponent()`. Pero estoy confundido: ¿cuál es la correcta? Cuando uso `escape()`, parece que funciona, pero he oído que está obsoleta. Y `encodeURI()` no codifica todo, mientras que `encodeURIComponent()` codifica incluso las barras.
Por favor, indíquenme cómo codificar correctamente una URL en JavaScript. ¿En qué casos se debe usar cada una de estas funciones? ¿Y qué hacer si