Hide
А sum это что вообще?
это функция которую я импортирую из другого файла )
Hide
Hide
вот так воот )
Anna Karenina
Ну
Anna Karenina
Все правильно
Pavel
потому что я если делаю const p = sum() то далее console.log(p(4,8)) не работает
В данном случае ты можешь убрать (), тогда будет функция
Pavel
А так ты присыаеваешь результат функции
Anna Karenina
P = sum // р является функцией Р = sum(а, с) // р является результатом функции, те числом
Anna Karenina
42() - 42 не функция
Anna Karenina
P = sum // р является функцией Р = sum(а, с) // р является результатом функции, те числом
(А если точнее, в первом случае р является ссылкой на функцию sum)
Hide
а ну да если проверить это сразу функция ))
Hide
Pavel
вот я убираю все ок ))
Надо чтобы ты лучше понял что такое функция и в чем отличие func от func(), а то не в первый раз спрашиваешь
Anna Karenina
В джс функции можно передавать как переменные Можно ещё написать так const sum = (a, b) => a + b;
Anna Karenina
И sum это точно такая же функция как и в вашем случае, только с другой имплементацией (но результат такой же)
Anna Karenina
погоди это в модуле 1 или 2 можно? ))
В модуле из которого экспортируешь можно её так переписать
Anna Karenina
Результат будет тот же
Hide
ну даа можно я просто к стрелочным еще не совсем привык )
Anna Karenina
Можно ещё написать export const sum = () итд...
Hide
недавно их повторил 😅
Anna Karenina
Типа сразу экспортировать а не потом объектом
Hide
Типа сразу экспортировать а не потом объектом
ух спасибо столько сразу всего подсказала 😃
Anna Karenina
👍👍
Pavel
На сколько я знаю это проблема поддержки модулей у браузеров в целом, нода к примеру нормально работает с модулями, а для браузеров нужен сборщик проектов
Pavel
Хотя я давно не интересовался, может что-то поменялось, было бы клёво если бы браузеры полноценную поддержку ввели 🙃
honey
Я вчера вот хотела модным импортом сделать Для этого нужно было в package.json добавить тип:модуль
honey
Добавила, импорт заработал
honey
Но поломался экспорт функций почему-то... Взяла старые реквайры и все ок..
honey
Видимо чёт не понимаю почему так
Pavel
Скорее всего поддержки импортов нет, реквайр более старенький и более надёжный в плане поддержки
honey
Скорее всего поддержки импортов нет, реквайр более старенький и более надёжный в плане поддержки
Так а что ещё является поддержкой импортов У меня чтобы они заработали просто нужно было тип:модуль добавить в пекедж.жсон
honey
И они заработали
honey
Но когда импорт используешь, то почему-то не получается функцию экспортнуть из файла Поэтому обратно на рекваир вернулась
Pavel
В общем надо смотреть, в js хреново с модулями)
honey
В общем надо смотреть, в js хреново с модулями)
А ещё это я не понимаю что есть модуль )
honey
Я вот пишу module.exports = { myfunc } И при синтаксисе импортов у меня это не валидно оказывается
Anna Karenina
а импорт как?
Pavel
А ещё это я не понимаю что есть модуль )
Модуль это обычный файл, тип script.js, который экспортируется или импортируется
honey
версию ноды чекни
Спасибо за твой совет) У меня вроде обновлено все максимально, но да, встану, гляну) и здесь покажу (Только у меня уже на рекваирах всё)
Anna Karenina
не стоит мешать модуль.экспорт и импорт из ес6
Anna Karenina
либо все жскпорты/импорты, либо все модуль.экспорт/реквайр
Anna Karenina
Почему ?
потому что кек, зачем мешать одно с другим) на изи какие-то приколы могут вылезти
honey
Модуль это обычный файл, тип script.js, который экспортируется или импортируется
Но я же не весь файл экспортирую, когда пишу модуль.экспортс Я же функцию одну только Но вот..у меня функция связана с переменными в файле, это считается ?)
Anna Karenina
export const foo = () => {}: // es6 module.exports = foo => {}; // es5
honey
потому что кек, зачем мешать одно с другим) на изи какие-то приколы могут вылезти
Я так понимаю что синтаксис Импортов более "красивый" и новый, и нужно его использовать Вот и настроила еслинт или чего-то такое, на использование импорта вместо рекваиров, и он мне подсвечивал рекваир, что мол, поменяй на Импорт, я поменяла, выкинул ошибку что нужно добавить тип:модуль в пекедж.джсон, я добавила, но модуль.экспорт в другом файле упал ) Такая история
Pavel
Почему ?
Как минимум для красоты кода, надо придерживаться одного стиля, к примеру или везде ставишь ; или нигде не ставишь
honey
export const foo = () => {}: // es6 module.exports = foo => {}; // es5
Аа, а export default function myfunc () {} Тоже будет синтаксис ес6?
honey
Всё я вас поняла
honey
Вроде
Anna Karenina
я лично пишу на тс и уже давненько не юзаю чистую ноду, надо проверить, не могу так сказать на вскидку
honey
Как минимум для красоты кода, надо придерживаться одного стиля, к примеру или везде ставишь ; или нигде не ставишь
Так даже дело не в красоте, у меня физически ошибка вылезла же) Я поэтому и раскудахталась тут хахаха)
honey
Получается я пользуюсь рекваир и модуль.экспортс
honey
А могу импортом и экспортом как в ес6
honey
Так?
Anna Karenina
да
Anna Karenina
с версии ноды 17 вроде
Anna Karenina
вот на почитать доку
Anna Karenina
https://nodejs.org/api/esm.html
honey
honey
Шпасибо ~
Anna Karenina
👍
Anna Karenina
дока вместо 1000 слов)
Pavel
протестил сейчас, import/export работает с package.json
Pavel
прикольно, я думал без какого-то вебпака не будет работать
Anna Karenina
ну вебпак просто собирает все в одну кучу со всякими разными плюшками
Pavel
правда коряво работает, надо разобраться)
Pavel
а ну да, это просто я хреново знал что такое модуль 🙃
Pavel
что и следовало ожидать)
Pavel
была такая же проблема: https://stackoverflow.com/questions/53630310/use-functions-defined-in-es6-module-directly-in-html
Pavel
а у меня и без package.json работает :D
Anna Karenina
а почему не должно?)