Задать вопрос
  • Какие еще есть блогеры вроде Sorax?

    @truazeshel
    Есть такой чувак на ютубе "Pit - Уроки веб разработки". Я кстати тоже смотрел соракса, но к сожалению подобного качества в рунете еще не встречал.
    Ответ написан
    8 комментариев
  • Почему получаю ошибку Maximum call stack size exceeded?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    У вас тут идет рекурсивный вызов геттера и сеттера (вы из геттера age вызываете геттер age). Что бы понять что значит эта ошибка - читаем как работают рекурсии и что такое "стэк вызовов".
    Ответ написан
    1 комментарий
  • Как работает this?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ох...

    Для начала нам стоит прояснить что в javascript "методы" это обычные функции, которые просто привязаны к объекту. Если не вдаваться в подробности работы интерпритатора, вы можете спокойно вынести содержимое конструктора и заменить this на экземпляр объекта.

    Если совсем упростить - в javascript нет "методов", у объектов могут быть только свойства. "Методы" реализуются присваиванием функции (обычно анонимной) к свойству объекта.

    Теперь про this. this - это контекст вызова. Это "волшебная" переменная указывает на контекст, в котором мы вызвали какую-либо функцию. Она никак не фиксируется, и мы можем крутить и вертеть ей как хотим.

    По умолчанию она указывает на "владельца" функции. Тот объект, в контексте которого мы вызвали функцию.

    function foo() {console.log(this);}
    
    function MyObject() {
        this.foo = foo;
    }
    
    var hashMap = {
        foo: foo
    };
    
    var obj = {};
    var instance = new MyObject();
    obj.bar = instance.foo;  // мы можем даже красть методы
    
    foo(); // выведет window, если для браузера и мы вызывали в глобальном контексте
    instance.foo(); // выведет instance так как в контексте этого объекта мы это дело и вызывали
    hashMap.foo(); // выведет hashMap по той же причине
    obj.bar(); // выведет obj опять же потому что мы вызывали функцию в этом контексте
    foo.call('my own context') //мы можем задать свой контекст


    Зачем присваивается this и используется в дальнейшем?


    У функции есть своя область видимости. Ей доступны все переменные/идентификаторы которые определены в ее области видимости и выше в плодь до глобальной. То есть наши обработчики событий будут всегда видеть переменные объявленные в конструкторе. Причем именно то что было на момент вызова конструктора (то есть сохраняется во времени даже после завершения работы функции). Это к слову является типичной проблемой мемориликов, так как иногда люди забывают почистить за собой ссылки на объекты.

    У нас конечно есть еще функция bind, которая позволяет явно зафиксировать контекст, но иногда удобнее так.

    Именно за счет областей видимости функций в javascript мы достигаем инкапсуляции, скрываля приватные штуки внутри нашей области видимости и выплевывая наружу только то, что нужно. Самая настоящая инкапсуляция, модификаторы доступа в этом плане - просто кастыли (хотя для восприятия они проще).
    Ответ написан
    12 комментариев
  • Как самому доучить математику?

    @gottalottarock
    Я в 11 классе получил большое удовольствие от книги Кнута: "Конкретная Математика".
    В лектории МФТИ есть очень неплохие лекции по дискретной математике Райгородского
    lectoriy.mipt.ru/course/index?category=Maths
    Вообще, параллельно с доизучением школьного курса математики, я бы обязательно прочитал:
    Курант, Робинс «Что такое математика?»
    В её переводе был очень заинтересован Колмогоров-уже многое говорит.

    Моя рекомендация связана с тем, что в мире современной математики очень легко запутаться и развиться лишь односторонне, поэтому надо быть в курсе положения математики хотя бы в 20 веке. Ну а книга Куранта-одна из лучших, устраняющих смысловой разрыв между элементарной и высшей математикой.
    Ответ написан
    1 комментарий
  • Есть практические уроки для того чтоб понять как работает this в javascript?

    @lega
    Все просто: this - это объект из которого вызывается ф-ия, все.
    пример:
    obj.func() // тут this = obj
    obj.user.func() // тут this = user
    func() // тут this = window, т.к. объект не укаазан

    если переместить функцию в другой объект, то правило сохраняется, т.е. this будет ссылаться на новы объект из которого вызывается функция.

    Так же есть функции которые позволяют задать this:
    func.call(newThis, args1, arg2, arg3)
    func.apply(newThis, [args1, arg2, arg3])
    call и apply вызывают функцию и задают this, т.е. this = newThis

    По сути это всё, все другие фокусы основаны на этом, например ф-ия bind (IE 9+) которая просто замыкает (привязывает) нужный this:
    funcWithThis = func.bind(newThis)
    В итоге как бы её не вызвать: funcWithThis() или obj.funcWithThis(), исходная функция func будет вызвана с указанным this=newThis.

    На счет классов и new:
    inst = new MyClass(arg)
    можно разложить примерно так:
    inst = {};
    inst.__proto__ = MyClass.prototype;
    inst.constructor = MyClass;
    inst = MyClass.call(inst, arg) || inst;
    т.е. new создает новый объект с прототипом от MyClass, а потом вызывает эту ф-ию с установкой this как новый объект.
    Ответ написан
    Комментировать
  • Как самому доучить математику?

    timurkashapov
    @timurkashapov
    Программист
    Советую учебники советского периода:
    Калужнин Л.А. Введение в общую алгебру.
    Калужнин Л.А. Что такое математическая логика?
    Манин Ю. И. Математика и физика.


    Для общего математического развития:
    Калужкин Л.А. - Азбука кибернетики.
    Полетаев И.А. - Сигнал. О некоторых понятиях кибернетики.
    Пекелис В.Д. - Быстрее мысли.
    Пекелис В.Д. - Возможное и невозможное в кибернетике.

    Ответ написан
    Комментировать
  • Как самому доучить математику?

    Keyten
    @Keyten
    Серьёзная математика разделяется на много областей, тут, наверное, имеют смысл только:
    - Алгебра.
    - Анализ.
    - Геометрия.
    - Дискретная.
    - Возможно, логика, но это больше в плане подготовки к 1 курсу.

    По алгебре стоит почитать Шеня и Гельфанда (гуглится). Там очень много, от сложения столбиком и до p-адических чисел. Это школьный уровень, дальше -- если хочешь круто знать математику, то Винберг, если освоить линейную алгебру универа -- Ильин-Позняк (профи-математики плюются, правда)), mathprofi, можно Беклемишева, но он нечитаем, имхо. Гайд по решению простейших задач линала универа -- Просветов.
    Анализ... тут, наверное, порекомендую просто почитать mathprofi.ru для начала. Стандартно анализ в школе состоит из производной и интеграла на начальном уровне, имхо, имеет смысл учить сразу на более высоком уровне, так что сначала mathprofi, чтобы разобраться в основных определениях, дальше Зорича. Можно полистать Фихтенгольца. Дальше Лорана Шварца и лекции Львовского, но это реально очень высокий уровень.
    По геометрии совет мне дать сложно. Впрочем, если говорить не о школьной, а о высшей, то Прасолова-Тихомирова "Геометрия". Дальше была какая-то отдельная геометрия Прасолова, может, даже "Сферическая геометрия", но не уверен. "Geometries" Сосинского, но это на английском. Ну и мне на мой скромный взгляд понравилось у Берже, но это очень-очень серьёзный уровень.
    Дискретку, наверное, Хаггарти "Дискретная математика для программистов", можно ещё Новикова. Но тут у меня опыта меньше в знании книг :с
    Логика -- Шень, Верещагин.
    Общематематическое: Курант, Роббинс.

    Можешь порешать листки 57 школы: www.mccme.ru/~merzon/v14 , такой уровень в редком вузе есть.
    Если в Москве, то забегай в НМУ (гуглится) на следующий год, если нет -- vk.com/clubium, посмотри лекции. НМУ действительно очень серьёзно апает математический уровень.

    Если есть задача сдать ЕГЭ, то reshuege.ru

    P.S. познакомился с "Mathematics for Computer Science" от MIT, очень понравилось, если английский не пугает, то очень советую. Гуглится.
    Ответ написан
    2 комментария
  • Как самому доучить математику?

    bitrixd
    @bitrixd
    Я слышал усвоение материала напрямую зависит от количество непонятных слов и терминов в тексте. Можно попробовать начать с "Дискретной математики" и далее дополнять пробелы в знаниях из других курсов математики. Можно взять книгу по той теме, в которой планируете развиваться и в которой вам ничего непонятно, и разбираться с каждым абзацом, находя недостающую информацию в других книгах. Хотя это долгий путь, иногда чтобы что-то осознать и связать между собой в любом случае нужно время. Серединный путь как мне кажется, это найти хорошего преподавателя, человека который ответит на те вопросы которые могут возникнуть при осознании материала.
    Постижение математики - это путь, который не заканчивается :) Все таки, если есть конкретная задача, то лучше смотреть какие разделы математики помогают ее решать и изучить их. А если для общего развития и для гибкости ума, то решайте математические задачки в свое удовольствие )

    euler.jakumo.org/problems.html
    Ответ написан
    3 комментария
  • Как самому доучить математику?

    Foolleren
    @Foolleren
    Компас есть, копать не люблю...
    а почитайте ещё про фортран и его библиотеки узнаете про зачем вся эта математика в компьютере
    и много чего интересного про числа с плавающей запятой
    Ответ написан
    Комментировать
  • Как самому доучить математику?

    BATAZOR
    @BATAZOR
    Программист, DevOps
    Я себе купил эти книги для повторения и углубления 'Конспект лекций 1-2 часть' там описаны основные темы, которые изучают на 1 курсе. А дальше на Coursera есть курсы по комбинаторике, вероятности и прочему, выбрать что ближе.
    Ответ написан
    Комментировать
  • Как самому доучить математику?

    @volumo
    1курсник
    Сейчас в ВУЗе преподают математику (у нас) по конспектам Писменного. Там собран весь материал в краткой форме. Темы векторов и матанализ идет чуть полнее и понятнее, чем в школьном курсе. В качестве заданчика используется Проскуряков. Матанализ в помощь учебник Тер-Крикорова
    Ответ написан
    Комментировать
  • Как самому доучить математику?

    @CClarke
    mathprofi.ru
    по вышке, да и не только, все разжевано до предела. сам учусь в ВУЗе по тех. специальности и очень помогает.
    Ответ написан
    1 комментарий
  • Как самому доучить математику?

    @Saiberbest
    Очень понравился курс математики на Курсере. Это лучшее, что мне попадалось! Сам иногда использую, чтобы освежить знания. Так, что если не пугает английский, вот ссылка:

    https://www.coursera.org/learn/calculus1/
    Ответ написан
    1 комментарий
  • Как самому доучить математику?

    Stroy71
    @Stroy71
    Век живи-век учись.
    Даже если математика больше не пригодится(хотя у Вас впереди еще ВУЗ), она конкретно дисциплинирует мозг. Сходите на книжный развал и найдите пару старых учебников по алгебре, геометрии. Желательно издание до 90-х годов.
    А вообще, математика, понятие растяжимое. Включает в себя кучу разделов, начиная с арифметики и заканчивая теорией игр и т.д.
    Лично я начал более менее понимать диффуры только когда началось их практическое применение.
    И главное, ни в коем случае не зацикливайтесь на тестах ЕГЭ.
    Ответ написан
    7 комментариев
  • Как самому доучить математику?

    @syrov
    пишу программы до 99 строк
    Попробуйте "Nature of Code" (natureofcode.com/book/introduction ). Она на английском, но это тоже может пригодиться в IT.
    Ответ написан
    Комментировать
  • Как самому доучить математику?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    Во-первых, определите, зачем вам математика, и нужна ли она вообще реально вам на сверхглубоком уровне? Если вы действительно занимаетесь версткой хтмл+цсс, математика вам постольку-поскольку нужна, того что знали вполне хватит.
    Во-вторых, если вы хотите куда-то двигаться в более специфичные сферы, типа программирование, анализ данных, биг-дата, статистика, и прочее - то берете любой учебник, читаете содержание и пытаетесь изучать каждую главу как из этого самого же учебника, так и читая все что выдает поисковик по этой теме. Ну и главное пробуете решать, проверяете свои решения и сверяете ответы - вы должны понимать суть и уметь решать. Тогда к вам придет осознание смысла математики и как ее применять.
    В-третьих, чтобы не забыть что уже изучили изредка решайте примеры на уже пройденные намного ранее темы, а лучше устраивайте себе тесты и контрольные. Учебников, задачников в интернете навалом, даже яндекс предлагает сервис по тестированию для ЕГЭ, повторяйте и это, школьный уровень тоже будет полезен, основы повторите. А сканированных книг, методик и программ обучения математике - пруд пруди.
    Поставьте конкретные цели, определите что вам и зачем и вперед по собственному намеченному плану! Удачи вам! Математика - всегда пригодиться! Это вещь!
    Ответ написан
    2 комментария
  • Как самому доучить математику?

    @deliro
    так как верю в то,что понимая математику я буду преуспевать во всем другом

    Не шути так.
    Как определить уровень знаний сейчас?

    Попробовать решить задачи на темы, которые ты можешь взять в __любом__ учебнике по матану, лин. алгебре, анал. геометрии, дискретке и т.д.
    Что решать/учить/конспектировать?Откуда брать материал?

    Предыдущий ответ. Плюс материала в интернете сейчас валом. Лекции из лучших вузов на ютубе, к примеру.
    Так же занимаюсь html+css

    Молодец.
    Ответ написан
    3 комментария
  • Какой есть карманный справочник по CSS?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Ответ написан
    Комментировать
  • Какой есть карманный справочник по CSS?

    atnartur
    @atnartur
    Веб-разработчик
    devdocs.io в браузере и с сохранением документации в кеш
    Ответ написан
    Комментировать