Ответы пользователя по тегу JavaScript
  • Как правильно присваивать переменную?

    @diadiafiodor
    какой-то человек с улицы
    Ваша переменная outPutData хранит ссылку на экземпляр объекта, это у вас там какой-нибудь div или span, не важно, любой элемент разметки. Инструкция outputData = 'Введите значение' стирает ее и кладет в переменную строку 'Введите значение'. Если вам нужно помнить это строку положите ее в отдельную переменную
    let string = 'Введите значение'
    если вам нужно чтоб ваша строка стала методом для outputData, можно прописать
    outputData.prop=string,
    проконсольте и убедитесь что она теперь стала свойством outPutData.
    Тем не менее на экран она не выведется, потому что нужно сначала сделать из нее textNode (с помощью все того же innerHTML например), в общем курите мануал, потому что никто не будет создавать отдельно для вас туториал на каждый чих, когда все уже написано в справочниках, у Фленагана например.
    Ответ написан
    Комментировать
  • В чем разница записи замыкания js?

    @diadiafiodor
    какой-то человек с улицы
    Если вызываем (function(){})() , то создаем замыкание, переменные которого доступны будут только в нем
    и больше нигде, если вызывать (function(){}()), то можно запузырить туда еще других функций
    (function(){},function(){},function(){}, ...) для которых внутренние переменные, принадлежащие
    замыканию будут тоже доступны.


    Например вы хотите, чтобы счетчик кликов работал только от кликов и нигде в коде не было доступа к нему,
    тогда вешаете функцию на обработчик события следующим образом:
    document.addEventListener("click" ,(function(){var numClicks = 0; return function(){alert(++numClicks)};})(), false)
    Ответ написан
    Комментировать
  • Как правильно перенести скрипт из файла .html в .js файл?

    @diadiafiodor
    какой-то человек с улицы
    Чтобы всегда подключать js без батхёрта вам нужно потратить 15 минут вашего времени на создание базовых файлов, в которых нет ничего кроме того, что они подключены и работают, и каждый раз, когда что-то не подключается в проекте, обращаться к ним и делать также, внимательно проверяя каждую буковку. Поэтому для начала создайте новую папку с названием test например и положите туда всего 2 файла, как тут:
    5ae471278e07c451432594.png
    UDP и еще нужна функция обёртка, которая будет обрабатывать событие загрузки окна
    window.onload = function loader(){
    document.write('HI user!');//тут вместо document.write описать и  вызвать все ваши функции
    }

    простите, сразу не пришло в голову, что проблема в этом
    Ответ написан
    Комментировать
  • Прошу объяснить неопытному кодеру почему не работает этот чертов код...(?

    @diadiafiodor
    какой-то человек с улицы
    Там такая штука, ваш код принимал нажатие, но event.key не доступен по прямой ссылке, в других областях видимости, кроме непосредственно той где был задан, поэтому надо или делать ссылку на ссылку (хехе) или обрабатывать на месте. Из кода ниже видно как это сделать.
    var i=0;var j=0;window.mistake = 2;var guess = 0; var kN=0;var letter = ['s','g','f','v','p','t','m','n','b','l','d',];
    function checkUsersKey (levelText) {console.log("press any key");
      var theEnd = false;
      var counterLetters;
      var keyName=0;
      while (theEnd != true ) {
        document.addEventListener("keypress", (event) => {
         keyName = event.key;
    	 kN =keyName; 
    	 if("y"==keyName){window.mistake = 0}
    	 else{window.mistake = 1;}
        })
      if(window.mistake==1){
    	  i=i+1;console.log(kN+" no guess "+i+" tyme");
    	  window.mistake=2}
    	  if(mistake==0){
    	  j=j+1;console.log(kN+" guess "+j+" tyme");window.mistake=2}; 
    	  theEnd = true;
      };
    }
    
    var link = checkUsersKey;setInterval(function(){ return checkUsersKey(letter[j])},500);
    Ответ написан
    Комментировать