Igor
эта переменная и фиктивная ...к ней доступ получить нельзя ... я о том что так можно себе представлять поведение for let
Aleksei
Ребят всем привет, кто-то здесь знаком с cms prestashop?
Igor
Лично? ;)
Aleksei
Если лично, то приеду и руку пожму )
Igor
ну может народ не знаком ... просто ебуться ... постельне повод для знакомства. Лучше задавать конкретный вопрос.
eye=x×s²
Ребят всем привет, кто-то здесь знаком с cms prestashop?
короче задавай конкретный вопрос по практике
Aleksei
короче задавай конкретный вопрос по практике
Одним словом хотел скопелировать проект. В документации пишут: Впишите make assets и будет вам счастье
Aleksei
Но так не работает
Andrii
я к тому что это тоже не верно ... потому что переменная объявленная в for let не доступна вне цикла.
Да, надо её удалить, ввести скоуп переменных вне цикла, внутри цикла, ...
Igor
Кароче есть стандарт где прописанно как работает ;) все остальное отсебятина которая ведет к травмам ошибкам в понимании.
Igor
Одним словом хотел скопелировать проект. В документации пишут: Впишите make assets и будет вам счастье
ну если у тебя все установленно ... то что то не то с путями похоже ... ты должен запускать эту команду в корне проекта
Ol
Как-то вот так оно работает на самом низком уровне
Перечитала. С этим проблем с пониманием вроде не возникло.
Aleksei
ну если у тебя все установленно ... то что то не то с путями похоже ... ты должен запускать эту команду в корне проекта
Ну мейк файл там находится. Будто система не может найти, но в ручную всё есть
Igor
Где???
14.7.4 The for Statement
Maksim Pozharskiy
а что если я скажу что один из принципов ООП реализуется с помощью замыканий...
Ol
Это как раз то, о чем говорил Игорь. Это ссылки на контекст
Шаман Каган
Игоооорььь!
Andrii
Наверное так, просто все эти темрины их надо знать. Я же больше оперирую тем, как бы я сам писал JS на Си, если бы шизанулся
Шаман Каган
а что если я скажу что один из принципов ООП реализуется с помощью замыканий...
ну слава б-гу сейчас можно просто иметь приватные поля )
Andrii
Да, лексическое окружение цикла, и блока, в котором цикл
Igor
их то за что?
Ol
Фак
Andrii
Фак
Это бла-бла-бла
Maksim Pozharskiy
Отправится с этим в флудилку
Ol
По-моему, данного товарища надо банить
Ivan
Отправится с этим в флудилку
Как я туда отправлюсь, админ злой там
Maksim Pozharskiy
По-моему, данного товарища надо банить
А ведь его только вчера разбанили))
Maksim Pozharskiy
Как я туда отправлюсь, админ злой там
Не злой, а строгий и справедливый!
Ivan
А ведь его только вчера разбанили))
В правилах, небольшой оффтоп приветствуется
Igor
В правилах, небольшой оффтоп приветствуется
В правилах да ... но ты же пишешь не в правила а в чат ...
Maksim Pozharskiy
В правилах, небольшой оффтоп приветствуется
Тут просто наудивлялись уже чатгпт, он уже всех заменил и достал, поэтому лучше во флудилку про него
Igor
Это по ходу не лечиться ....
Ol
Наверное так, просто все эти темрины их надо знать. Я же больше оперирую тем, как бы я сам писал JS на Си, если бы шизанулся
Я думаю, в этом и проблема. Что мы говорим на разных языках. Мне кажется, если бы мне объяснили это с терминами лексического окружения по порядку. Мол, на этом этапе берём эту локальную переменную, а вот на этом берём из лексического окружения. Вот тот лёгкий пример я поняла, о чем ты. Но с этими хреновымт таймаутами так и осталось непонимание процесса. Только принятие как данность, что при вар один результат, а при лет - другой. Если честно, я бы давно расплакалась, если бы не тот факт, что даже Макс не понимает этот пример, хотя уже работает долго.
Igor
for(var i= 0; i<5; i++) { let j = i; setTimeout(()=>{console.log(j);}, 1000*j); } просто равносильно for(let j= 0; j<5; j++) { setTimeout(()=>{console.log(j);}, 1000*j); }
Вот как это работает ... только переменная i это фиктивная переменная к которой получить доступ нельзя
Andrii
А всё остальное это просто попытки как-то объяснить сишный код...
Igor
кароче в стандарте фор бади эвалюэйшн зыришь .. там написанно что создается пер итерейшн байндинг ... или твой лексический контекст на каждый проход цикла. Причем такое поведение четко привязанно к тому что в фор в инициализации был let .
Igor
Т.е это ни что иное как поведение for let и никак иначе объяснено быть не может.
eye=x×s²
начал вот обрабатывать книгу, нече так
Maksim Pozharskiy
начал вот обрабатывать книгу, нече так
Осталось самое сложное - дочитать до конца
Rodion
начал вот обрабатывать книгу, нече так
Там есть ссылки на исследования/источники или просто мысли автора?
Rodion
+-
Почитал обзоры, кажется очень даже неплохая книга
Rodion
Лично у меня нелюбовь к книгам (по программированию) из-за слишком большого количества текста. Я предпочитаю краткость А почему вы читаете книги?
eye=x×s²
Лично у меня нелюбовь к книгам (по программированию) из-за слишком большого количества текста. Я предпочитаю краткость А почему вы читаете книги?
текст сжимает информацию до максимально возможного, скорость чтения определяют умственные возможности которые можно прокачивать
simon
Тут же хорошо уже говорили, учебник по программированию= Личный опыт автора+ тех документация
Ol
Мне кажется, до меня дошло. Но надо ещё переварить. Случай с вар. То есть, если взять тот случай с сеттаймом, сет тайм создаёт функцию при i=0. Но в момент запуска у нее нет локальной переменной, поэтому она полезет в глобальную. Но поскольку это функция отложенная, то цикл уже отмотался, и она возьмёт 10. А в случае с лет при первой итерации i=0, сет тайм тоже создаст функцию. И на момент запуска, цикл тоже уже отмотается, но разница будет в том, что функция при запуске не полезет в глобал, у нее будет записана локальная переменная со значением 0, правильно?
Блина, ну почему это неправильно? Ведь замыкание - это и есть свойство функции - запоминать лексическое окружение, в котором она создана. Если лет для каждой итерации создаётся локально, то так и получается, что она(функция) создаётся в окружении этого лет и запоминает его. А в случае с вар она(функция) видит, что локальной переменной нет, и лезет искать ее в глобал, как раз по ссылке из лексического окружения. А в глобале оно 10. Почему тогда мое объяснение путаное? В чем логическая ошибка?
Ol
Ol
Это бла-бла-бла
Я думаю, указатели - это что-то вроде ссылки на родительское окружение в джс?
Ol
Ну да, любой объект в JS это по факту указатель.
Тогда почему мое объяснение неверное?😭
Ol
Ну да, любой объект в JS это по факту указатель.
Или ты не знаком с тем, что такое лексическое окружение?
Andrii
Или ты не знаком с тем, что такое лексическое окружение?
Я почитал уже. Последнее досточно близко
Andrii
let x = 1; let y = 8; if (x === `) { let x = 2; var f = function() { return x + y } } if (f() === 10) { console.log("Success"); } Всё это будет примерно так: создаём лексическое окружение #1, глобальное, без родителя let x = 1; — создаём переменную x в лексическом окружении #1 let y = 8; — создаём переменную y в лексическом окружении #1 if (x === 1) { — новый блок, создаём лексическое окружение #2 с родителем #1 let x = 2 — создаём переменную x в лексическом окружении #2 var f = function() — создаём лексическое окружение #3 для функции f с родителем #2 f(); — заходим в функцию. Она работает с лексическом окружении #3. x — нету в лексическом окружении #3, смотрим в родительством #2, там есть, берём оттуда 2 y — нету в лексическом окружении #3, смотрим в родительством #2, там нету, ищём в роительском родительского #1, там есть берём оттуда 8 x+y — выполняем 2 + 8 получаем 10, выходим, устанавливает лексическое окружение #1 что было до функции. if (f() === 10) { — новый блок, создаём лексическое окружение #4 с родителем #1.
соловей
Привет! Кто может поделиться каким-нибудь ТЗ на разработку програмного обеспечения, сайта, приложения и т.д. Хочу написать.
Ol
let x = 1; let y = 8; if (x === `) { let x = 2; var f = function() { return x + y } } if (f() === 10) { console.log("Success"); } Всё это будет примерно так: создаём лексическое окружение #1, глобальное, без родителя let x = 1; — создаём переменную x в лексическом окружении #1 let y = 8; — создаём переменную y в лексическом окружении #1 if (x === 1) { — новый блок, создаём лексическое окружение #2 с родителем #1 let x = 2 — создаём переменную x в лексическом окружении #2 var f = function() — создаём лексическое окружение #3 для функции f с родителем #2 f(); — заходим в функцию. Она работает с лексическом окружении #3. x — нету в лексическом окружении #3, смотрим в родительством #2, там есть, берём оттуда 2 y — нету в лексическом окружении #3, смотрим в родительством #2, там нету, ищём в роительском родительского #1, там есть берём оттуда 8 x+y — выполняем 2 + 8 получаем 10, выходим, устанавливает лексическое окружение #1 что было до функции. if (f() === 10) { — новый блок, создаём лексическое окружение #4 с родителем #1.
Я щас уже плохо соображаю, я обязательно отвечу вечером
соловей
Тогда можете предложить очень интересную и нелегкую идею??
соловей
Или поделиться проектами из своей практики
Andrii
Тогда можете предложить очень интересную и нелегкую идею??
Идей много, например можно нейросетку SR (superresolution) натравить на старые игры. В каком-нить DOS-box или VirtualBox запускаешь старую игру, нейросеткой оптимайзишь графику до большего размера, выводишь на экран.
Vadim
Товарищи, доброго всем времени суток. Возможно, кто-то ковырялся плотненько с Yii2, подсобите пожалуйста. — Воткнулся с вопросом кеширования - упорно пишутся в кеш определенные куски html и между похожими, но разными страницами мигрируют. Пока проект в тестовом окружении. Пробовал отключать кеширование, пробовал вставлять игнорирующие кеш заголовки, пробовал жонглировать кешированием - apccache, filecache, memcache (решает проблему, но РАДИКАЛЬНО режет производительность). Кеш, разумеется, многократно чистил. Если кто с похожим сталкивался, подскажите пожалуйста в какую сторону копать?