ilyachalov (ilyachalov) wrote,
ilyachalov
ilyachalov

Categories:

JavaScript: import и кавычки

Прочел подраздел 13.1 «Модули, введение» тринадцатого раздела «Модули» первой части «Язык программирования JavaScript» учебника по JavaScript.

В тексте этого подраздела (в одном из примеров) обнаружилась ошибка. Цитата:

// Импорт одного и того же модуля в разных файлах

// 📁 1.js
import `./alert.js`; // Модуль выполнен!

// 📁 2.js
import `./alert.js`; // (ничего не покажет)

У меня этот код в браузерном окружении вызвал ошибку: «Uncaught SyntaxError: Unexpected template string» для обоих этих скриптов.

В подразделе 2.5 «Типы данных» учебника было рассказано про то, что в языке JavaScript строковый литерал может обособляться тремя видами кавычек: двойные кавычки "строка" (по-английски «double quotes»), одинарные кавычки 'строка' (по-английски «single quotes») и обратные кавычки `строка` (по-английски «backquotes», «backticks»; одна такая кавычка — символ, диакритический знак «гравис», по-английски «grave accent»).

Обратные кавычки как раз и служат для обособления так называемых шаблонных литералов (шаблонных строк). Шаблонные строки по-английски называются «template strings», о них и идет речь в тексте ошибки.

Как оказалось, при указании пути к модулю для импорта этот путь можно обособлять только одинарными или двойными кавычками. Об этом можно прочесть тут:

https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/import

Поэтому применение обратных кавычек в вышеизложенном примере является ошибкой. Эта ошибка исправляется заменой в тексте примера обратных кавычек на одинарные или двойные.

Надо отметить, что в других примерах этого же подраздела авторы учебника используют одинарные или двойные кавычки в похожих случаях. Поэтому в данном случае ошибочное применение обратных кавычек является скорее случайной опиской.

В комментариях к этому подразделу учебника, кстати, один из читателей эту ошибку тоже отметил.
Tags: Образование, Программирование
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments