Ответы пользователя по тегу JavaScript
  • WebGL как попробовать?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    1. Действительно странный вопрос, гугл на такое не отвечает, но помочь может, плохо просили.
    2. Это не контактная технология, нельзя трогать, можно только использовать для каких то целей. (Сделать так чтобы он вас потрогал за что нибудь тоже нельзя)
    3. Он не материальный, нельзя подходить, можно только использовать для каких то целей. (Сделать так чтобы он к вам подошел первым тоже нельзя)

    В общем, открываете доки по webGL (гугл, я уверен предлагал вам куда нибудь перейти и почитать про него).
    Открываете текстовый редактор.
    Смотрите в доки.
    Повторяете у себя в текстовом редакторе.
    Запускаете.

    Все...это путь как запикапить webGL. не зассать, подойти и потрогать его, если выражаться вашим языком.

    А если серьезно, то если вы задаетесь такими вопросами, то вам думаю не с webGL нужно начинать.
    Ответ написан
    Комментировать
  • Как создать данный массив?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    [{name: "Вася", age: 25},
    {name: "Петя", age: 22},
    {name: "Маша", age: 19}]
    Ответ написан
    Комментировать
  • Лучшие книги для изучения JavaScript в области разработки интерфейсов (Frontend)?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Для чего составлять такую подборку? Вы просто перечислили практически все книги на русском по JS. При чем однотипные.
    Большинство из них описывают одно и тоже. Я прочитал почти все из этого списка. По опыту могу сказать, что читать всю подборку не нужно.
    Посоветовал бы прочитать книгу Ильи Кантора и книгу "Javascript для профессиональных веб-разработчиков", автор Николас Закас вроде.(Вместо второй можно прочитать Фленагана. Подробное руководство., но Заказ мне больше нравится, по моему мнению гораздо лучше объясняются многие вещи). Две эти книги, достаточно объемные и информативные, всю основу прекрасно преподносят.
    Также посоветовал бы книгу по оптимизации производительности, автор также Николас Закас и любую книгу по регулярным выражениям, но это уже после некоторой практики. А также книгу "Веб-приложения на JavaScript". Сам ее только вот начну читать, но по содержанию и отзывам достаточно хорошая.

    Достаточно будет чтобы довольно хорошо освоиться в языке.
    Не нужно читать однотипные книги. С 3 по 6 включительно пункты не стоит читать. Только зря потратите время.

    ООП объясняется в первых двух книгах которые я упомянул. Также книга про паттерны - largescalejs.ru/.

    Но главное не просто читать а повторять все примеры и выполнять все задания, попутно придумывания задания для себя самому. Чем больше практики, тем лучше будет откладываться информация в голове и будет намного лучшее понимание что да как.
    Я читать некоторые книги по несколько раз, потому что не сильно парился сначала о практике, просто читал, выполнял некоторые задания, по ходу было понятно, но через главу, уже все забывалось... Поэтому практикуйте, практикуйте и еще раз практикуйте.
    Удачи в обучении!
    Ответ написан
    Комментировать
  • Добавление метода в прототип конструктора?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Свойства в сам конструктор.
    Методы и константы в прототип.
    Делать так нужно для экономии памяти. Чтобы каждый инстанс не имел одинаковые для всех методы, а брал их из прототипа
    Ответ написан
    Комментировать
  • Значение переменной, как название массива в объекте?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Для начала, объект это ассоциативный массив, хранящий ключ-значение.
    var object = {
      key: value
    };


    Доступ к свойству объекта можно осуществить при помощи:
    1. Оператора доступа "точка".
    object.key

    2. При помощи скобок, визуально обращаясь к элементу массива.
    object[key] // key - строковый тип

    Далее:

    1. В вашем случае вы создаете "пустой" объект при помощи литерала.
    var output_urls = {};
    2. Добавляете одно свойство.
    output_urls.domaIn = {}; // данное свойство является пустым объектом

    3. В добавленное свойство (объект), добавляете свойство со своим значением.
    output_urls.domaIn.redirect_status = true;
    4. Повторяете 3-тий шаг.
    output_urls.domaIn.redirect_urls = [1,2,3];

    У вас получился объект следующего вида.
    output_urls:
      "domaIn":
        redirect_status:
          true,
        redirect_urls:
          [1, 2, 3]


    И в общем, не знаю правильно или нет я понял вас, вам нужно следующее решение:
    var output_urls = {};
    output_urls[domaIn] = {};
    output_urls[domaIn].redirect_status = true;
    output_urls[domaIn].redirect_urls = [1,2,3];


    Теперь при любом валидном значении переменной domaIn, в объекте ключом будет именно значение переменной а не ее имя.

    В итоге при значении переменной domaIn = "simple.ru", получится объект вида:
    output_urls:
      "simple.ru":
        redirect_status:
          true,
        redirect_urls:
          [1, 2, 3]
    Ответ написан
    Комментировать
  • Как скрывать и показывать кнопку по клику?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Рабочий пример - https://jsfiddle.net/evg_/sn1akyhz/1/

    var btn = document.querySelector(".btn")
    		isStart = false;
    
    btn.addEventListener("click", function() {
    	if (isStart) {
    		btn.classList.remove("modifier");
    		btn.textContent = "Старт";
    		isStart = false;
    		stop();
    		return;
    	};
    	
    	btn.classList.add("modifier");
    	btn.textContent = "Стоп";
    	isStart = true;
    	start();
    });
    
    function start() {
    	console.log("start");
    }
    
    function stop() {
    	console.log("stop");
    }
    Ответ написан
    4 комментария
  • Как правильно отследить событие закрытия вкладки?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Выполнить свою функцию не получится, на 99.999% уверен.
    Данное событие позволяет только вывести модальное окно, уверен что хочу закрыть или нет.
    В некоторых браузерах можно написать свой текст, написав в обработчике
    window.onbeforeunload = function() {
      return 'Some string';
    }


    Не работает из за безопасности.
    Ответ написан
  • Где найти интерактивное изучение js?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    nnmclub.to/forum/viewtopic.php?t=973073&start=45
    Единственный курс, в котором подробно изучается сам стандарт ES.
    Очень много практических заданий.
    Тем более обучение основано на изучении по учебнику Ильи Кантора.
    Тем более преподаватель бывший сотрудник Яндекса, нынешний сотрудник Lusoft
    Обучение длится 48 часов. Это только видеолекции, не считая времени на практику.
    По ES в курсе достаточно большое количество задач после каждой лекции, по JS также много задач из учебникак Ильи Картора, плюс выполняются такие работы как Слайдер, ToDo list, RSS ридер, корзина интернет магазина с local storage, а также выпускные проекты, сайт и игра.

    Этого курса + книги на learn.javascript.ru будет достаточно чтобы получить очень хорошую базу, конечно если выполнять все задания.
    Ответ написан
    1 комментарий
  • Какой способ подключения CSS и JS лучше?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    По идеи должны быть 2 директории, одна для разработчика, другая для пользователя, т.е продакшн версия.
    Лучше всего использовать препроцессоры, делать файловую структуру, подключая через import все файлы в один и компилировать его в продакшн версию.
    К странице в идеале подключать один минимизированный файл со стилями и также файл со скриптами.

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

    PS. Для компиляции, сборки и т.д лучше использовать сборщики для автоматизации, например тот же gulp
    Ответ написан
    Комментировать
  • Как интерпретировать this в данном примере?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    При передачи функции в setTimeout, контекст будет потерян,и теперь this будет равен не новому объекту, а будет равен undefined.
    Поэтому если не использовать какой нибудь метод сохранения контекста, работать ничего не будет.
    Например если в функции не использовать метод с сохранением контекста в переменную в замыкании, а просто писать this.метод то будет ошибка.
    function getBoilTime() {
      return this.waterAmount * WATER_HEAT_CAPACITY * 80 / power;
    }


    В данном случае, this будет не новый объект, а будет равен undefined.
    поэтому вызов undefined.метод приведет к ошибке.
    Для решения данной проблемы используют неявный вызов с call/apply, сохранение контекста в новую переменную как в этом случае, или функцию bind, которая позволяет сохранить контекст для функции.

    Ссылки:
    Потеря контекста
    Привязка контекста при помощи bind
    call/apply
    Сохранение контекста (habrahabr)
    Ответ написан
    Комментировать
  • JS Почему срабатывает событие по добавлению строки таблицы?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    // Automatically add a first row of data
    $('#addRow').click();
    Ответ написан
    Комментировать
  • Как правильно задать высоту блока когда между верх и ниж. контентом большое расстояние?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Сделать так как в моей демке codepen.io/evg_/pen/RRozLj
    + media запросы
    Ответ написан
    Комментировать
  • Почему интерпретатор указывает нам в выводе тип number?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Во всех* математических операциях операнды стремятся к неявному преобразованию к численному типу. И поэтому во всех случаях математических вычислений, кроме конкатенации строковых значений (в этом случае операнды стараются преобразоваться в строковый тип) вычисления будут равны типу number.
    Тут ничего понимать и не надо. Математические вычисления...значит вычисления в любом случае будут равны числовому типу (исключениями являются конкатенация и NaN, что логически не должно быть числовым типом, но это так)
    Ответ написан
    Комментировать
  • Почему цикл for работает так?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Жизненный цикл переменной i из вашего примера:
    1. i = 0 (Удовлетворяет условию)
    2. i = 1 (Удовлетворяет условию)
    3. i = 2 (Удовлетворяет условию)
    4. i = 3 (Удовлетворяет условию)
    5. i = 4 (Удовлетворяет условию)
    6. i = 5 (Не удовлетворяет условию) 5 не меньше 5. Выходим из цикла.
    7. Выводим в консоль i. Смотрим на последнюю (шестую) итерацию. i = 5. Выводится 5.
    Ответ написан
    4 комментария
  • Какой смысл в метках?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Какая между разница?
    В ваших примерах разницы нет.
    И зачем вообще метки нужны?
    Используют если есть вложенность одного цикла в другой. Прекратить итерацию внутреннего цикла и перейти к следующей итерации внешнего.
    Часто ли их используют?
    Нет
    Ответ написан
    Комментировать
  • Почему выводится undefined в замыкании?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Что то я про такую реализацию модуля не слышал.

    Вот так будет работать:

    (function () {
        function lodash() {
          alert("Lodash");
        }
    
        function set(item) {
          alert(item);
        };
    
        lodash.set = set;
    
        window.lodash = lodash;
      })();
    
    lodash.set(150);
    Ответ написан
    7 комментариев
  • Вопрос по свойству prototype!?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Потому что при наследовании, все свойства будут копироваться, а значит занимать память. Лучше хранить все методы в прототипе, а свойства в самом Конструкторе.
    Ответ написан
    Комментировать
  • Есть пример эффектных landing page?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Ответ написан
    Комментировать