Александр Мельник

Александр Мельник

С нами с 02 сентября 2016; Место в рейтинге пользователей: #64
Александр Мельник
16 октября 2020, 13:49
0
попробовал ради интереса отследить, что попадает в $_SERVER['HTTP_REFERER']
Только если переходы в рамках одного домена, тогда да $_SERVER['HTTP_REFERER'] содержит полный url откуда перешли.
Но при переходах с других сайтов и других доменов — там пусто.
Александр Мельник
16 октября 2020, 13:41
0
Не знал. Про visual basic слышал, но считал что никто в мире им не пользуется)
Александр Мельник
16 октября 2020, 13:11
0
Спасибо. Но честно говоря даже не представляю как это возможно. Excel это закрытое программное обеспечение. Как можно его модифицировать, чтобы заставить например отправлять http запросы (ну или как там у вас организовано общение с базой.)
Александр Мельник
16 октября 2020, 12:35
+1
Класс сами писали? Вроде у меня такое было если в написанном мной классе были ошибки, к примеру он не расширял стандартный класс оплаты.
Александр Мельник
16 октября 2020, 12:13
0
приходиться с Excel подключаться к сайту на MODX
Вы имеете в виду — из запущенного редактора microsoft Excel вы каким-то образом связываетесь с сайтом?
Александр Мельник
16 октября 2020, 09:16
0
Спасибо Артем.
вариант просто не будет работать, потому что ты мутируешь константу в выражении i++
я вроде бы именно это и написал, только без термина мутирования. Я написал «const не прокатит, изза того что мы переменную i на каждой итерации увеличиваем»
но такой код никто не захочет читать и поддерживать
— вроде бы тоже самое и я написал, что если язык позволяет так делать, то значит это НЕ есть «правило языка», это «культура написания кода», когда ты делаешь код гармоничнее и для себя и для потомков.
Отчего же это?
Лишь мои размышления. Название «переменная» намекает на изменяемость. Переменная должна «переменятся» или хотя бы иметь такую возможность.
Александр Мельник
15 октября 2020, 20:40
0
Неа. Именно тип. Значение двух типов менять можно. Это массив и объект. Мы запросто можем манипулировать их внутренностями.
понимаю что занимаюсь демагогией бесполезной, но не соглашусь. Вы имеете ввиду что можете изменять значения свойств объекта, объявленного через const. А положить вместо этого объекта другой можете? Нет, хотя тип при этом вы же не измените. И у одного будет тип object и у второго.
Александр Мельник
15 октября 2020, 20:36
0
Есть такое правило ВСЕГДА использовать const при объявлении переменной.
Я правильно понимаю — это не есть правило языка, это скорее «культура написания кода»? Просто некий инструмент, который позволяет гарантировать неизменность типа данных и значения (кроме объектов) если это зачем то нужно.

Опять таки, дилетансткое мнение ни о чем кроме размышлений не основанное, но мне кажется что в js так прижился const что даже стал негласным правилом, только потому что 90 процентов случаев в переменных лежат не примитивы, а объекты, а их свойства и методы можно менять и у const. И вроде как всем удобно. Потому как концепция «неизменяемая переменная» это странная идея и вообще — оксюморон какой-то.
Александр Мельник
15 октября 2020, 20:09
0
Кстати сегодня еще раз повторно читал главу о сборке мусора в js, так как эта темя меня интересует. Но каюсь я так и не понял, что сборщик мусора настолько «шустрый» что успевает отрабатывать на каждой итерации циклов. Там написано «Сборка мусора выполняется автоматически. Мы не можем ускорить или предотвратить её.» и плюс «чтобы уменьшить возможное влияние на производительность, сборщик мусора старается работать только во время простоя процессора.»
Но вы безусловно правы.
Александр Мельник
15 октября 2020, 20:01
0
Спасибо Николай что не прошли мимо.
Тоесть я так понимаю, что в классическом цикле for const не прокатит, изза того что мы переменную i на каждой иттерации увеличиваем, а значит нам нужна ссылка на нее в памяти?
Так плохо
for (const i = 0; i < 10; i++) {
            // do something
        }
а так хорошо
for (let i = 0; i < 10; i++) {
            //
        }
далее нельзя будет изменить ее тип
Ну скорее значение? Тип понятное дело не измениться если нельзя заменить даже значение, но Боже мой, а с каких пор js стал языком со строгой типизацией? Такое чувство что из него C++ начали делать.
Александр Мельник
15 октября 2020, 17:59
0
Я продолжу задавать тут дилетантские вопросы по js.
А почему в таком вот цикле (объект user заранее создан)
for (const key in user) {
            if (user.hasOwnProperty(key)) {
                const element = user[key];
                console.log(element);
            }
        }
и key и element объявлены через const, хотя на каждой итерации они будут изменяться и при этом — ошибок не возникает?? Вот в моем понимании там может быть только let element =
Александр Мельник
14 октября 2020, 21:00
0
да, я понимаю, поэтому и стараюсь «выбросить из головы» концепции php.
два момента только:
— в учебниках крайне мало уделяется внимания именно этому аспекту, поэтому и спрашиваю у более опытных.
— плюс мне кажется что js в браузере и js на сервере это немного разные вещи. У них одинаковый синтаксис но разная идеология, нет? node js это прежде всего процесс в операционной системе, он регистрируется как сервис (по крайней мере в линуксе) и понятное дело — работает постоянно. js в браузере — это лишь код, которые обрабатывается встроенным в браузер интерпретатором. И мне сложно представить что он единожды инициализируется и дальше работает.
Александр Мельник
12 октября 2020, 22:18
0
спасибо. Я пользуюсь MDN, но больше как справочником, а не учебником.
Когда нужно понять как работает та или иная функция и так далее.
Все-таки учебник Кантора — это более учебное пособие, где после каждой главы есть закрепляющие занятия.
Александр Мельник
12 октября 2020, 20:04
0
Не соглашусь Николай насчет неосновательности и не по порядку.
Хотя у меня уже есть начальные знания о javascript, я прохожу учебник learn.javascript.ru/ пошагово, с первой главы. Иногда честно через силу, конкатенирую строчки, пишу if ы и прочий первоначальный синтаксис, хотя тянет сразу перейти к тому, что совсем прошло мимо меня — классы в js, модули, импорты экспорты и прочее. Но пока держу себя в руках.
Александр Мельник
12 октября 2020, 19:49
0
Хотя выбирая между Мининым и Лавриком… даже не знаю. Наверное остановлюсь на Лаврике, у него педагогический талант.
Александр Мельник
12 октября 2020, 19:48
0
пробежал одним глазом,
я имел в виду, что нет времени сейчас серьезно изучить и на выходных прочту и вникну.
Александр Мельник
12 октября 2020, 19:46
0
Спасибо) Как раз из видео Минина я и узнал о том, как работает event loop и асинхронность в js )
www.youtube.com/watch?v=vIZs5tH-HGQ
Александр Мельник
12 октября 2020, 18:36
0
пробежал одним глазом, выглядит вкусно! спасибо.
Александр Мельник
12 октября 2020, 15:47
0
вы правы, просто я не вижу ничего подобного в документации.

То что вы говорите, событие пользователя и прочее — все это асинхронность выполнения кода.
Есть вот такой сайт
latentflip.com/loupe/
на котором наглядно отображается так называемый event loop для javascript в браузере, видно как асинхронные события помещаются в апи браузера, ждут наступления события, в то время как основной поток идет себе синхронно и так далее. И если в nodejs код всегда асинхронный, то в браузере (насколько я понимаю) нет, он наоборот всегда синхронный. Иначе нам не приходилось бы добавлять атрибут defer при подключении скрипта. При условии что мы не создаем асинхронности сами — добавляем промисы, колбеки и так далее.
Поэтому мне казалось что было бы логично, что если весь код состоит из объявления и присвоения переменной, то после выполнения кода — прибить эту переменную в памяти. Но это так… лишь мои домыслы, а практика показывает что нет — все переменные продолжают храниться в оперативной памяти.

А в каком тогда случае очищается память? Это где то задокументировано, вам попадалась такая инфа? При перезагрузке страницы? При закрытии вкладки?