Итак, я только начал изучать JavaScript. Я использую простой JavaScript и слежу за курсом Code Academy. Исходя из C#, я понял, что модули - это что-то вроде пространств имен в C#. У меня проблемы с экспортом, а также с импортом:
let Module = {
name: 'Hello'
};
export default Module;
Это вызывает у меня ошибку - «Непойманная SyntaxError: неожиданный экспорт токена».
Я также попробовал синтаксис ES5:
let Module = {
name: 'Hello'
};
module.exports = Module;
Это вызывает у меня еще одну ошибку - «Uncaught ReferenceError: module is not defined». Я использую новейшую версию Chrome и не понимаю, почему JavaScript не распознает эти команды. Это очень расстраивает, и я не могу осознать это. Поэтому я хотел бы попросить кого-нибудь помочь мне с этой проблемой.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если вы используете новейшую версию Chrome, она поддерживает модули ES2015 +. Убедитесь, что в теге script указано, что это модуль:
<script type = "module">
import name from './your-module-file.js';
console.info(name); // {name: "Hello"}
</script>
Тогда ваш первый пример будет работать.
Но обратите внимание, что Module - это нет модуль. Это объект, который вы экспортируете в модуль из.
Спасибо за ответ, но меня больше не устраивает, почему пример ES5 не работает и почему он не распознает module.exports? я что-то пропустил? Я делаю именно то, что Codeacademy делает на своем веб-сайте. У них это работает, но не у меня.
@DaniloDimitrievski Поскольку это не "ES5", это стиль модуля common.js, который предполагает полуглобальные объекты module и require. В браузерах их нет, если вы не используете определенную библиотеку.
Вам необходимо добавить атрибут
type = "module"в свой тег скрипта.