• Как удалить ненужные символы в строке?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    // returns true if has contain spam
    const checkForSpam = function (message) {
      const c = message.toLowerCase().replace(/[^a-z\s]/g, '');
      const w = c.split(' ');
      return w.includes('spam') || w.includes('sale');
    }
    
    console.log(checkForSpam('[SPAM] How to earn fast money?')); // true

    Но я бы не зашивал в функцию исчерпывающий перечень стоп слов, а передавал их в нее:
    // returns true if has contain spam
    const checkForSpam = function (message, stops) {
      const c = message.toLowerCase().replace(/[^a-z\s]/g, '');
      const w = c.split(' ');
      return stops.some(word => w.includes(word));
    }
    
    console.log(
      checkForSpam(
        '[SPAM] How to earn fast money?',
        ['spam', 'sale']
      )
    ); // true
    Ответ написан
    4 комментария
  • Как решить задачу с использование цикла for?

    @chemdev
    let a = 1
    Number.isNaN(Number(a)) // false
    a = 'a'
    Number.isNaN(Number(a)) // true
    Ответ написан
    5 комментариев
  • Почему в toLowerCase( ) нельзя вложить что-то на подобие includes(var)?

    Kentavr16
    @Kentavr16
    long cold winter
    Потому что когда ты пишешь Number(Math.pow(2, 4)); , это одно - сначала вычисляется значение pow от явно переданных чисел, затем оно приводится к строке. то есть
    функция1ЖдуЧислаОтФункции2(функция2)(
    В случае с include ситуация наоборот.
    var.toLowerCaseВозвращаетСтроку().includesОжидаетЗначениеДляОбработки()

    Цепочка это причина-следствие в чистом виде, слева направо . У вложенных функций начало выполнения внутри самой вложенной, конец-снаружи.
    функцияКотораяВыполнитсяПоследней(ФункцияВыполнитсяВторой(ПерваяКВыполнению))
    Ответ написан
    Комментировать
  • Почему в toLowerCase( ) нельзя вложить что-то на подобие includes(var)?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Даже не знаю с чего начать...
    Ну начну с определений объектов Number и String (сами почитаете).

    У объектов есть методы, объекты можно вызывать как функции.
    Первый пример
    Number(Math.pow(2, 4));
    Здесь мы имеем два объекта Number и Math. У объекта Math вызывается метод pow, который возвращает некое значение. Это значение передается в качестве параметра в Number, вызываемый как функция для приведения переданного значения к числу.
    То есть Number() ожидает параметр, и мы его туда передаем.

    Второй пример.
    str.toLowerCase().includes(s);
    Здесь вы имеем объект String (строка в переменной str). У этого объекта куча методов, которые можно использовать. Здесь вызывается метод toLowerCase(). Этот метод НЕ принимает никаких параметров (смотрите документацию) и возвращает новый объект String. Затем у этого нового объекта String вызывается еще один метод includes(s)
    Ответ написан
    Комментировать
  • Почему скрипт не работает, что я делю не правильно?

    Потому-что, если вы ничего не ввели и преобразовываете к Number, то message вернёт 0, а не null и ваша проверка на null не сработает.
    message = Number(message); // здесь ноль
    И при выполнении условия из цикла нужно выходить.
    let total = 0;
    
    let message;
    
    for (let i = 0; i < 1; total += message) {
      message = prompt('Введите любое число!');
    
      if (message !== null) {
      	message = Number(message);
      }
    
      if (message === null) {
        message = alert(`Общая сумма чисел равна ${total}`); 
        break;
      }
    }
    Ответ написан
    1 комментарий
  • Почему при нажатии на "Отмена" не выводится нужное сообщение?

    DoNiFF
    @DoNiFF
    C++ Developer
    const ADMIN_PASSWORD = '777';
    let message;
    
    let modal = prompt('Введите пароль');
    
    if (modal === ADMIN_PASSWORD) {
      message = alert('Добро пожаловать!');
    } else if (modal !== ADMIN_PASSWORD) {
      message = alert('Доступ запрещен, неверный пароль!');
    } else if (modal === null || modal === "") {
      message = alert('Отменено пользователем!');
    }
    Ответ написан
    5 комментариев
  • Как правильно использовать Инклуды в HTML?

    sharp97
    @sharp97
    не фонтан но брызги есть
    если я правильно понял что ты хочешь сделать это
    <?php include_once 'header.php' ?>
    в header.php только контейнер
    потом разбиваешь на файлы nav и прочее и также подключаешь
    <header>
    <?php include_once 'nav.php' ?> 
    <?php include_once 'other.php' ?>  
    <?php include_once 'other2.php' ?>  
    </header>
    Ответ написан
    5 комментариев
  • Почему не работает анимация transform: translateX?

    @its2easyy
    transform на элементе применяется только одной записью, поэтому применяется только сначала translate, а потом rotate его перезаписывает. А left это отдельное свойство, поэтому оно работает одновременно. Нужно все трансформации в одной записи указывать,
    transform: translate(-100px) rotate(360deg), либо добавлять к элементу обертку, и второй трансформ вешать на неё.
    Ответ написан
    1 комментарий
  • Для чего нужен "Микс" в методологии БЭМ?

    @zxf
    Нужны для удобства.

    Я бы рекомендовал использовать, когда необходимо реализовать layout’ы каких-либо переиспользуемых компонентов.

    Кнопка может быть светлой и темной, для этого логично использовать модификатор, так как модификация несущественная и, очевидно, отражающая состояние блока (…_dark / …_light).
    Если модификация более существенная и требует сбора стилей из разных классов, можно использовать микс, тогда система получится более гибкая, за счёт мелких переиспользуемых классов.

    В процессе решения проблем становится понятно, где и что удобнее использовать.
    Ответ написан
    1 комментарий
  • Для чего нужен "Микс" в методологии БЭМ?

    delphinpro
    @delphinpro
    frontend developer
    Если с Модификатором еще + - понятно [...], то вот с Миксом мне не понятно,

    Вы невнимательно читали про БЭМ или вовсе не читали.
    Написание модификатора на html-элементе – это тоже микс.

    Mix - англ. Смесь

    Именно для этого они и нужны: Для размещения (смешивания) нескольких БЭМ-сущностей на одном HTML-элементе.
    Ответ написан
    1 комментарий
  • Как научиться верстать без проблем?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Студентам в начале курса говорила, кто хорошо в детстве играл в лайнс, тетрис и подобное, тот будет хорошо верстать.
    Верстка это обычная геометрия средней школы записанная с помощью тегов и раскрашеная/подвинутая стилями. Всё.
    Всякие JS и т.д. это просто следующий этап.

    План действий может быть таким:
    1. Берете/получаете макет
    2. Внимательно рассматриваете его, мысленно разбивая на блоки. Думаете что куда может/должно растягиваться или уменьшаться при изменениях экрана и увеличении/уменьшении контента.
    3. Если п.2. сразу не осилился, идете гулять или спать.
    4. Возвращаетесь к п.2.
    5. Верстаете понятные большие блоки, затем их заполняете. Разбивайте задачи более простые.

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

    А совсем без проблем не выйдет, потому что экранов много, браузеров много, хотелок у заказчиков еще больше. Хорошо, когда эти хотелки интересные :)
    Ответ написан
    12 комментариев