Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Урок 72 из 114 · 10 мин
globalThis, Infinity, isFinite, isNaN, eval и кодирование адресов encodeURI, encodeURIComponent, decodeURI, decodeURIComponent.
Ввожу в поиск «блокнот & пенал» — и сайт нашёл только «блокнот».
& в адресе — разделитель параметров. Значение надо закодировать — encodeURIComponent.
globalThiswindow в браузере, self в воркере, global в Node.globalThis.appName = "Планер";
console.log(appName, typeof globalThis);Infinity1 / 0 → Infinity, -1 / 0 → -Infinity.console.log(1 / 0, Math.min(), -Infinity < -1e308);isFinite() · isNaN()isNaN("абв") → true, isFinite("12") → true. Строгие версии — Number.isNaN и Number.isFinite.console.log(isNaN("абв"), Number.isNaN("абв"), isFinite("12"), isFinite(Infinity));eval()eval("2 + 2") выполняет текст как JavaScript. Опасно (внедрение кода), медленно и почти никогда не нужно.console.log(eval("2 + 2"));encodeURIComponent() · decodeURIComponent()&, ?, /, пробелы, кириллицу.const q = encodeURIComponent("блокнот & пенал");
console.log(q);
console.log(decodeURIComponent(q));encodeURI() · decodeURI()/ ? & :), кодирует только недопустимые (пробелы, кириллицу).console.log(encodeURI("https://app.ru/каталог?q=блокнот"));
console.log(decodeURI("%D0%BC%D0%B5%D0%BD%D1%8E"));Значение параметра — encodeURIComponent. Целый адрес — encodeURI. Перепутаешь — адрес сломается.
Напиши searchUrl(query), которая возвращает /search?q= + закодированный запрос. Для "блокнот & пенал" амперсанд не должен разрывать параметр.
Выберите один ответ.
Что использовать для значения параметра в URL?
Выберите один ответ.
Почему eval почти не используют?
Проверяем состояние обучения…