Популярные вопросы начинающих!

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
Два аккаунта больного изолированы!
 

йцукенгшщзхъ

Well-Known Member
Регистрация
24.06.2020
Сообщения
45
Подскажите, пожалуйста, а почему этот код всегда выводит вариант default? Разве в нём есть ошибка? Спасибо за ответ?
JavaScript:
<!doctype html>

<html lang="ru" >

<head>

<meta charset="utf-8">

<title>вот так штука</title>
</head>

<body>
<script>
"use strict";

let a = prompt("Сколько будет 2+5?");

switch (a) {
  case 6:
    alert( 'Вы ошиблись. 2+5=7' );
    break;
  case 7:
    alert( 'Всё верно!' );
    break;
  case 8:
    alert( 'Вы ошиблись. 2+5=7' );
    break;
  default:
    alert( "Вы очень сильно ошиблись, будьте внимательнее. Возможно вы не умеете считать или вы робот. 2+5=7" );
}

</script>
</body>
 

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
831
Может потому, что prompt возвращает строку, а для case заданы числа и ответ получается правильный: число не равно строке - значит ответ из default.
Или преобразуйте переменную "а" в число, или числа в case преобразуйте в строки.
 

Max737

Well-Known Member
Регистрация
20.10.2020
Сообщения
56
Что по статейникам сейчас на конец 2020 года? Продолжают умирать?
 

йцукенгшщзхъ

Well-Known Member
Регистрация
24.06.2020
Сообщения
45
Подскажите а как сделать так, что бы этот код работал?
JavaScript:
<!doctype html>
 
<html lang="ru" >

<head>

<meta charset="utf-8">

<title>название</title>
</head>

<body>
<script>
"use strict";

let year = prompt('Введите математическое действие.', '');
let yea = prompt('Введите 1 число для калькуляции.', '');
let ye = prompt('Введите 2 число для калькуляции.', '');
   if (year == "минус") alert(  yea-ye );
   if (year == "плюс") alert(  yea+ye );
   if (year == "делить") alert(  yea/ye );
   if (year == "умножить") alert(  yea*ye );

</script>
</body>
Я захотел написать маленький калькулятор. Функции "минус", "делить" и "умножить" работают хорошо. А вот "плюс" нет. Видимо он не работает из за того, что вместо унарного плюса применяется бинарный, и как и положено складывает две строки. А как преобразовать эти строки в числа? Или этот код вообще принципиально не будет правильно работать?
Спасибо за ответ.
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
1605008493879.png

Не совсем понимаю в чём проблема. Но по идее должно помочь, если все значения будешь переводить в числа через Number, Float, parseInt, toFixed и так далее. Зависит от того - нужны десятичные или только целые.
Подробная статья https://learn.javascript.ru/number, пересказывать не имеет смысла.
 

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
831
Видимо он не работает из за того...
Обработчик js может сам преобразовывать значения к нужному (в его пониманию) типу. Из полей форм и js-окон всегда приходят строки. Знаки минус, умножить и разделить применимы только к числам и поэтому скрипт сам догадывается преобразовать значения из строк в числа. Плюс применим и к числам, и к строкам, а поскольку значения из prompt - строки, то преобразовать их в числа js не догадывается.
Почитайте в поиске "преобразование типов js".
 

йцукенгшщзхъ

Well-Known Member
Регистрация
24.06.2020
Сообщения
45
Спасибо! Сделал вот так и заработало.
JavaScript:
if (year == "плюс") alert(  +yea + +ye );
 

йцукенгшщзхъ

Well-Known Member
Регистрация
24.06.2020
Сообщения
45
Здравствуйте! Сейчас прочитал статью про кэширование сайта. Подскажите, а можно вместо просто формата файла (например HTML) написать конкретный файл? Просто у меня есть несколько файлов HTML которые не изменяются, и несколько которые изменяются. И я хочу что бы кэшировались не все файлы, а только которые не изменяются. Заранее спасибо за ответ!
HTML:
<filesMatch ".(css|jpg|jpeg|png|gif|js|ico)$">
Header set Cache-Control "max-age=2628000, public"
</filesMatch>
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
Да. В filesMatch используется RegExp, но она спокойно обрабатывает строки, если не использоваться спец.символы и выражения RegExp.

То есть элементарно можешь написать <filesMatch "filename.html"> или <filesMatch "filename.html$">
Либо также перечислить названия, как в регулярке <filesMatch "(filename.css|filename.js|filename.html)$">
(может потребоваться экранировать точку \. )
 
Регистрация
05.12.2020
Сообщения
2
Думаешь в этом виноваты именно шаблонные строки?
Так программирование не освоить, бросать в начале пути. Я еще в далеком 2004, когда php изучал, бывало искал проблему по 2-3 дня с головной болью, что самое интересное, искал в логике, но проблемы были бональными - отсутствие точки с запятой или написание в переменной русского символа буквы - с (это вообще треш) так как визуально все впорядке, но о линтерах тогда не знал. Такие банальные ошиПки быстро искореняются практикой написания и исполнения кода. Ошибка начинающих - пытаться написать весь код и потом запускать его исполнение и с удивлением смотреть на то, что код вообще не работает )))

Правило для начинающих - написал небольшой кусочек - ПРОВЕРЬ его работоспособность! Так на начальном этапе проще не допускать банальных ошибок и продвигаться без психологических потрясений от неработающего кода. )))
 

Sttystia

Well-Known Member
Регистрация
30.09.2020
Сообщения
52
Так программирование не освоить, бросать в начале пути. Я еще в далеком 2004, когда php изучал, бывало искал проблему по 2-3 дня с головной болью, что самое интересное, искал в логике, но проблемы были бональными - отсутствие точки с запятой или написание в переменной русского символа буквы - с (это вообще треш) так как визуально все впорядке, но о линтерах тогда не знал. Такие банальные ошиПки быстро искореняются практикой написания и исполнения кода. Ошибка начинающих - пытаться написать весь код и потом запускать его исполнение и с удивлением смотреть на то, что код вообще не работает )))

Правило для начинающих - написал небольшой кусочек - ПРОВЕРЬ его работоспособность! Так на начальном этапе проще не допускать банальных ошибок и продвигаться без психологических потрясений от неработающего кода. )))
Именно поэтому, начинающие бросают все после недели гемороя, а потом говорят, что в этой нише денег нет
 

EvgenJ

Well-Known Member
Регистрация
08.09.2020
Сообщения
95
Как проверить, есть ли на домене фильтры поисковиков?
 

Max737

Well-Known Member
Регистрация
20.10.2020
Сообщения
56
Как проверить, есть ли на домене фильтры поисковиков?
Есть специальные сервисы, там можно проверить количество ссылок и фильтры, в том числе даже если домен использовался кем-то 5 лет назад
 
Верх Низ