Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 9

Почему так работает условие?

27.06.2020, 04:27. Показов 1145. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В задании требуется предложить пользователю окно, если он нажимает отмену. При такой записи условия все отлично работает.

JavaScript
1
2
3
4
5
6
7
8
9
let num = 1;
while(num <=2) {
    let lastFilm = prompt("Один из последних просмотренных фильмов?", "");
    if(lastFilm != null && lastFilm.length != '' && lastFilm.length < 50) {
        let rating = prompt("На сколько оцените его?", "");
        personalMovieDB.movies[lastFilm] = rating;
        num++;
    }
}
Но когда я меняю условие на :

JavaScript
1
if(lastFilm.length != '' && lastFilm.length < 50 && lastFilm != null)
то условие перестает работать
В консоли пишет такую ошибку:
Uncaught TypeError: Cannot read property 'length' of null
Почему так происходит объясните.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.06.2020, 04:27
Ответы с готовыми решениями:

Почему не работает условие с выводом в новое окно
Написал такой код. &lt;!doctype html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; &lt;title&gt;Документ без названия&lt;/title&gt; ...

Не понимаю почему так работает json
https://private-e9dfb8-videotest3.apiary-mock.com/videos - есть такой файл. При помощи var xhr = new XMLHttpRequest(); ...

Почему так работает?
Связал данные с сайта и поставил таймер на проверку. Вот почему так работает? Когда на сайте в #knb_count_my_rows стоит 0, он...

1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
27.06.2020, 05:34
Лучший ответ Сообщение было отмечено Nikita215qw1422 как решение

Решение

Здравствуйте.

При такой записи условия программа насильно заставляет пользователя ввести два фильма, даже если он в своей жизни не посмотрел ни одного фильма.
Программа нарушает права человека. Жизни пользователей важны (С)

Покажу, как то же самое сделать покрасивее:
JavaScript
1
2
3
4
5
6
7
8
for (let num = 1; num <= 2; ) { // Здесь улучшим
    let lastFilm = prompt("Один из последних просмотренных фильмов?", "");
    if (lastFilm != null && lastFilm.length && lastFilm.length < 50) { // Длина - число, а не строка
        let rating = prompt("На сколько оцените его?", "");
        personalMovieDB.movies[lastFilm] = rating;
        num++; // Счетчик увеличивается, только если оценил фильм
    }
}
Сначала нужно разобраться с lastFilm != null, потому что если пользователь нажал отмену, то у null нет никаких свойств, в том числе и length.
А если сразу проверим на null, то потом не надо проверять длину.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.06.2020, 05:34
Помогаю со студенческими работами здесь

Почему выполняется условие else, если выполнилось условие if?
При вводе буквы, которое есть в переменной word, по идеи, если такой буквы нету, то должно выдать сообщение, то, что **Такой буквы нету**. ...

Нужно изменить высоту div с id wrap. Почему если записать вместо tmp просто '855px', все работает, а так нет?
Функция вызывается в обработчике события onload body. alert(tmp) выводит '855px'. function alertSize() { ...

ЧТО НЕ ТАК? Почему не работает условие?
Всем привет. Уже почти часа ломаю голову. Вот код: &lt;? $links = file('links.txt'); $url1 = $links; //первая ссылка $url2 = $links;...

Почему не работает условие в условии и так далие?
&lt;? if (!empty($_POST) &amp;&amp; !empty($_POST) &amp;&amp; !empty($_POST)) { $type = isset($_POST) &amp;&amp; in_array(intval($_POST),...

Почему не работает условие?
Всем привет! Есть код, который я сам написал. Я в php новичок, поэтому не судите строго:) Все идеально работает, кроме одного. После 5-ой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru