Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Как организовать веб-студию на дому и сколько это может стоить
Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
potapchino

alex

  • 415
    вклад
  • 6
    вопросов
  • 281
    ответ
  • 98%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как проверить строку на наличие нужной буквы?

    potapchino
    alex @potapchino
    var string = 'абв123'
    
    if (string.includes('б')) {
      throw new Error('error')
    }
    Ответ написан 26 мар. 2020
    Комментировать
    Нравится 1 Комментировать
  • Как в HTML сделать чтобы не печатались кнопки при нажатии ctrl+p?

    potapchino
    alex @potapchino
    @media print {
        .buttons, footer { display: none; }
    }
    Ответ написан 24 мар. 2020
    Комментировать
    Нравится 1 Комментировать
  • Просто JS действие?

    potapchino
    alex @potapchino
    document.querySelectorAll('a').forEach(link => {
      if (link.pathname === window.location.pathname) {
        link.classList.add('active')
      } else {
        link.classList.remove('active')
      }
    })
    Ответ написан 18 февр. 2020
    Комментировать
    Нравится 4 Комментировать
  • Почему b == number?

    potapchino
    alex @potapchino
    потому что на самом деле ваш код выглядит вот так:
    var b;
    
    if(true) {
      let a = b = 200;
    }
    
    console.log( typeof a ); // undefined
    console.log( typeof b ); // number


    чтобы было как вы ожидаете, нужно сделать вот так:
    if(true) {
      let b;
      let a = b = 200;
    }
    
    console.log( typeof a ); // undefined
    console.log( typeof b ); // undefined
    Ответ написан 06 февр. 2020
    Комментировать
    Нравится 2 Комментировать
  • Как сделать анимацию в js?

    potapchino
    alex @potapchino
    .portfolio__case {
      transform: translateY(0px);
      transition: transform ease .1s;
    }
    
    .portfolio__case:hover .portfolio__button {
      display: block;
      transform: translateY(-1px);
    }
    Ответ написан 05 февр. 2020
    7 комментариев
    Нравится 7 комментариев
  • Как центрировать img внутри div?

    potapchino
    alex @potapchino
    object-fit: cover


    object-fit: contain
    Ответ написан 04 февр. 2020
    Комментировать
    Нравится 1 Комментировать
  • Как прибавить 2 числа друг к другу и умножить на 2?

    potapchino
    alex @potapchino
    p = (+length + +width) * 2;

    а лучше так

    var p, s_house, s_masonry, total;
    
      // Ширина дома
      var width = parseInt($('#width-metr').val());
      
      // Высота дома
      var height = parseInt($('#height-metr').val());
      
      // Длинна дома 
      var length = parseInt($('#length-metr').val());
    
      // Площадь двери и окна
      var s_wind_doors = parseInt($('#more-metr').val());
      
      // Вычислить площадь
      p = (length + width) * 2;
      console.log('Периметр дома:', p);

    Ответ написан 19 янв. 2020
    2 комментария
    Нравится 1 2 комментария
  • Почему получаю ошибку too much recursion?

    potapchino
    alex @potapchino
    constructor(year) {
      this._year = year;
    }
    Ответ написан более года назад
    Комментировать
    Нравится 1 Комментировать
  • Почему reduce выдаёт NaN вместо чисел?

    potapchino
    alex @potapchino
    вам сумму на каждой итерации нужно возвращать из reduce, а вы не возвращаете
    spoiler

    var arr = [1,2,3,4,5]
    
      function getSums(arr) {
    
        let res = []
    
        arr.reduce((sum, current) => {
          res.push(sum+current)
          return sum + current
        },0)
    
    
        return res
    
      }
    
      console.log(getSums(arr))

    Ответ написан более года назад
    4 комментария
    Нравится 4 комментария
  • Как правильно написать регулярное выражение на проверку двух последних символов?

    potapchino
    alex @potapchino
    function func(string, chars) {
      return string
        .slice(-2)
        .split('')
        .some(char => chars.includes(char))
    }
    
    func('qlw2e3r4!@#$', ['#', '$']) // true
    func('qlw2e3r4!@#$00', ['#', '$']) // false
    func('0', ['#', '$']) // false
    func('00#0', ['#', '$']) // true
    Ответ написан более года назад
    Комментировать
    Нравится Комментировать
  • Как работают эти строчки?

    potapchino
    alex @potapchino
    function countIdentic(arr) {
        return arr
          .sort()
          .reduce((acc, n, i) => arr[i + 1] === n && arr[i - 1] !== n ? ++acc : acc, 0)
    }
    Ответ написан более года назад
    4 комментария
    Нравится 1 4 комментария
  • Как связать 2 объекта в js?

    potapchino
    alex @potapchino
    class Car {
      constructor(model, color) {
        this.model = model
        this.color = color
        
        this.passengers = []
      }
      
      sit(passengers) {
        this.passengers = this.passengers.concat(passengers)
      }
    }


    class People {
      constructor(name, age) {
        this.name = name
        this.age = age
      }
      
      greet() {
        alert(`Hello, I'm ${this.name}`)
      }
    }


    const boomer = new Car('BMW', 'black')
    
    const alex = new People('Alex', '26')
    const vika = new People('Vika', '27')
    
    boomer.sit([alex, vika])


    boomer.passengers.forEach(function (passenger) {
      passenger.greet()
    })
    Ответ написан более года назад
    6 комментариев
    Нравится 6 комментариев
  • Как сделать смену цвета при ховере одновременно и на свг, и псевдо?

    potapchino
    alex @potapchino
    .main-header__icon--like:hover:after{
      background-color: blue;
    }
    Ответ написан более года назад
    Комментировать
    Нравится 1 Комментировать
  • Как вызвать action из другого файла state?

    potapchino
    alex @potapchino
    dispatch('logger/logger', null, { root: true });
    Ответ написан более года назад
    Комментировать
    Нравится 1 Комментировать
  • Почему числа склеиваются вместо сложения?

    potapchino
    alex @potapchino
    sum += +res[i]
    Ответ написан более года назад
    1 комментарий
    Нравится 2 1 комментарий
  • Как сделать по БЭМ?

    potapchino
    alex @potapchino
    на самом деле тут нет однозначно верного решения. их множество и все они могут быть правильными. для начала нужно посмотреть на этот кусок интрфейса и определиться, что тут может быть блоками. все зависит от степени переиспользуемости которая вам нужна. можно все одним блоком сделать или например выделить 4 блока:

    контейнер
    <div class="container"></div>

    тайтл
    <div class="title"></div>

    превью работы
    <div class="project-preview">
        <div class="project-preview__image"></div>
      </div>


    сама секция портфолио
    <div class="portfolio-section">
        <div class="portfolio-section__inner">
          <div class="portfolio-section__title"></div>
          <div class="portfolio-section__grid">
            <div class="portfolio-section__preview"></div>
            <div class="portfolio-section__preview"></div>
            <div class="portfolio-section__preview"></div>
            ...
          </div>
        </div>
      </div>


    далее все это соединям вместе миксуя блоки на одной dom-ноде
    <div class="portfolio-section">
        <div class="portfolio-section__inner container">
          <div class="portfolio-section__title title">Портфолио</div>
          <div class="portfolio-section__grid">
            <div class="portfolio-section__preview project-preview">
              <div class="project-preview__image"></div>
            </div>
            <div class="portfolio-section__preview project-preview">
              <div class="project-preview__image"></div>
            </div>
            <div class="portfolio-section__preview project-preview">
              <div class="project-preview__image"></div>
            </div>
            <div class="portfolio-section__preview project-preview">
              <div class="project-preview__image"></div>
            </div>
          </div>
        </div>
      </div>
    Ответ написан более года назад
    1 комментарий
    Нравится 2 1 комментарий
  • Зачем нужен return вообще кроме окончания функцыи?

    potapchino
    alex @potapchino
    функция всегда что-то возвращает. чтобы указать, что именно функция должна возвратить, используется ключевое слово return. это и есть его суть. даже если его(return) нет в теле функции, функция все равно вернет undefined по умолчанию.

    spoiler
    эта функция вернет undefined, т.к. ключевого слова return нет.
    function func() {
      var a = 5;
      var b = 10;
      var sum = a + b;
    }
    var result = func()
    console.log(result) // undefined


    эта функция вернет строку 'i love js', т.к. вы явно на это указали с помощью ключевого слова return.
    function func() {
      var a = 5;
      var b = 10;
      var sum = a + b;
      return 'I love js';
    }
    var result = func()
    console.log(result) // 'I love js'


    вернет сумму двух чисел
    function func() {
      var a = 5;
      var b = 10;
      var sum = a + b;
      return sum;
    }
    var result = func()
    console.log(result) // 15


    вернет сумму двух чисел
    function func(a, b) {
      var sum = a + b;
      return sum;
    }
    var result = func(3, 7)
    console.log(result) // 10


    тоже самое
    function func(a, b) {
      return a + b;
    }
    var result = func(2, 2)
    console.log(result) // 4


    следующие две функции возвращают undefined. первая явно, вторая неявно
    function func1() {
      return undefined;
    }
    var result = func1()
    console.log(result) // undefined
    
    
    function func2() {
      
    }
    var result = func2()
    console.log(result) // undefined


    вернет другую функцию
    function func() {
      return function () {
        return 'ааа сложнааа'
      };
    }
    var result = func()
    var result2 = result()
    console.log(result) // function func()
    console.log(result2) // 'ааа сложнааа'
    console.log(func()()) // 'ааа сложнааа'


    как только в функции встречается это ключевое слово, интерпретатор немедленно останваливает выполненние функции(выходит из нее) и возвращает то что написано после этого ключевого слова. именно поэтому этот цикл выполнит всего лишь одну итерацаю, а не 100, как и должно, и вернет 1.
    function func() {
      for (var i = 1;  i < 100; i = i + 1) {
        return i
      }
    }
    var result = func()
    console.log(result) // 1


    а вот так вернет 100
    function func() {
      for (var i = 1;  i < 100; i = i + 1) {
        
      }
      return i
    }
    var result = func()
    console.log(result) // 100


    а вот так вернет undefined
    function func() {
      for (var i = 1;  i < 100; i = i + 1) {
        
      }
      return 
    }
    var result = func()
    console.log(result) // undefined
    Ответ написан более года назад
    1 комментарий
    Нравится 3 1 комментарий
  • Как сделать редирект из javascript alert с вводом ссылки?

    potapchino
    alex @potapchino
    var test = prompt();
    window.open(test, '_blank');
    Ответ написан более года назад
    1 комментарий
    Нравится 2 1 комментарий
  • Не могу найти что блокирует выделение/копирование текста на сайте?

    potapchino
    alex @potapchino
    <a id="toTop">&#10148;</a>
    
            <meta http-equiv="imagetoolbar" content="no"><!-- disable image toolbar (if any) -->
            <script type="text/javascript">
                /*<![CDATA[*/
                document.oncontextmenu = function() {
                    return false;
                };
                
                // ---удалить это---
                document.onselectstart = function() {
                    if (event.srcElement.type != "text" && event.srcElement.type != "textarea" && event.srcElement.type != "password") {
                        return false;
                    }
                    else {
                        return true;
                    }
                };
                // -------
    
                // ---и это---
                if (window.sidebar) {
                    document.onmousedown = function(e) {
                        var obj = e.target;
                        if (obj.tagName.toUpperCase() == 'SELECT'
                                || obj.tagName.toUpperCase() == "INPUT"
                                || obj.tagName.toUpperCase() == "TEXTAREA"
                                || obj.tagName.toUpperCase() == "PASSWORD") {
                            return true;
                        }
                        else {
                            return false;
                        }
                    };
                }
                // ------
    
                document.ondragstart = function() {
                    return false;
                };
                /*]]>*/
            </script>
    Ответ написан более года назад
    2 комментария
    Нравится 1 2 комментария
  • Как мне складывать сумму массива Vue JS?

    potapchino
    alex @potapchino
    var app = new Vue({
      el: '#calculate',
      data: {
        dataFields: []
      },
      computed: {
        totalPrice () {
          return this.dataFields.reduce((acc, n) => {
             return acc += n
          }, 0)
        }
      }
    });
    Ответ написан более года назад
    3 комментария
    Нравится 3 3 комментария
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • Fallenyasha
    • 13 ответов
    • 0 вопросов
  • Drno
    • 7 ответов
    • 0 вопросов
  • firedragon
    Владимир Коротенко
    • 7 ответов
    • 0 вопросов
  • sergey-gornostaev
    Сергей Горностаев
    • 7 ответов
    • 0 вопросов
  • SoreMix
    SoreMix
    • 6 ответов
    • 0 вопросов
  • BojackHorseman
    Лентюй
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации