С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
10 / 10 / 1
Регистрация: 20.08.2016
Сообщений: 243

Объясните выполнение if(true)

29.11.2025, 21:54. Показов 485. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В блоках кода ниже что обозначает if(true)?

1.

JavaScript
1
2
3
4
5
6
7
8
9
function sayHi() {
  if (true) {
    var phrase = "Привет";
  }
 
  alert(phrase); // срабатывает и выводит "Привет"
}
 
sayHi();
2.

JavaScript
1
2
3
4
5
6
7
8
9
10
function sayHi() {
  phrase = "Привет"; // (*)
 
  if (false) {
    var phrase;
  }
 
  alert(phrase);
}
sayHi();

И почему функция выполнится в обоих случаях?

Я думал, что if(true) означает, что функция выполнится если alert имеет параметр (phrase). Но похоже, это не так.

И в коде ниже, когда phrase объявлена через let, что означает if(true)?

JavaScript
1
2
3
4
5
6
7
8
9
function sayHi() {
  if (true) {
    let phrase = "Привет";
    alert(phrase); // срабатывает и выводит "Привет"
  }
 
}
 
sayHi();
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.11.2025, 21:54
Ответы с готовыми решениями:

Меняется значение элемента с true на false, но не отрабатывается смена :disabled=true на :disabled=false
<button type="button" @click="buttonsClick(0)" :disabled="switcher" class="btn...

Остановить выполнение функции и перезапустить ее выполнение по новой
Всем доброго вечера. Друзья, подскажите пожалуйста - есть код, который после загрузки ДОМ дерева...

Объясните логику выполнения выражения
var a=2 alert(--a * ++a) // выводит 2НО var a=2 alert(a++ + --a * ++a) // выводит 8не могу...

7
 Аватар для voraa
1243 / 1142 / 179
Регистрация: 21.01.2024
Сообщений: 5,242
30.11.2025, 10:14
Я вас не понял. Вы берете примеры из учебника
https://learn.javascript.ru/var
где подробно объяснено что и почему. И теперь спрашиваете почему так работает.
А учебник то сам читали? Или только примеры взяли?
Не поняли? Ну прочтите еще раз
Или вы хотите, что бы кто то тут написал тоже самое, что в учебнике?

Что именно вы не поняли в учебнике?
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
30.11.2025, 12:27
Цитата Сообщение от sozdatel Посмотреть сообщение
что обозначает if(true)?
Понимание, что такое условный блок кода у Вас имеется?
п.1 Буквально обозначает:
Если (истина) {<выполняемые действия>}

Цитата Сообщение от sozdatel Посмотреть сообщение
И почему функция выполнится в обоих случаях?
п.2 Потому, что задекларированные переменные через var считываются при входе в функцию, независимо от местоположения в самом коде (естественно, если они не во вложенной функции), даже если блок кода, в котором они объявляются, не будет выполнен.

Цитата Сообщение от sozdatel Посмотреть сообщение
И в коде ниже, когда phrase объявлена через let, что означает if(true)?
см. п.1
0
409 / 301 / 112
Регистрация: 28.08.2013
Сообщений: 788
30.11.2025, 15:17
function sayHi() {} - это декларация (объявление) функции (где-то в памяти есть некий набор команд для выполнения). sayHi(); - вызов (выполнение) функции (процессор перейдёт на другой участок памяти).
Цитата Сообщение от sozdatel Посмотреть сообщение
В блоках кода ниже что обозначает if(true)?
Тут нужно немного истории и технической информации.
1. Процессор делится не несколько частей. Но сейчас только о двух. Выполнение кода и память. Память же физически делится на устройства, но для процессора она одно целое (CPU cache, RAM, disk, ...).
2. Первые компьютеры выполняли программы (набор команд) последовательно (т.е. одна за другой). Потом придумали ветвление выполнения кода. Но при каких условиях процессору нужно перейти на другой участок памяти? if(3 == 3){} - если сравнение истинно (а 3 равно 3, т.е. истина/да), тогда процессор переходит на другой участок памяти для выполнения находящихся там команд. Это условный переход, т.е. процессор перейдёт к выполнению определенных команд только если условие верно (истинно). if(true){} - процессор не выполняет сравнение, а сразу переходит. Т.е. безусловный переход.
П.С. Для понимания что такое компьютер и как он работает (в общих чертах), не плохо было бы прочесть книгу по основам ассемблера. Хотя бы просто прочесть.
П.П.С. Если сейчас не разобраться с этой темой, далее с JavaScript будут возникать проблемы с приведением типов.
0
 Аватар для voraa
1243 / 1142 / 179
Регистрация: 21.01.2024
Сообщений: 5,242
30.11.2025, 19:31
Цитата Сообщение от kidASM Посмотреть сообщение
П.С. Для понимания что такое компьютер и как он работает (в общих чертах), не плохо было бы прочесть книгу по основам ассемблера. Хотя бы просто прочесть.
П.П.С. Если сейчас не разобраться с этой темой, далее с JavaScript будут возникать проблемы с приведением типов.
Никакой ассемблер и преобразование типов не объяснят выполнение этого кода
JavaScript
1
2
3
4
5
6
7
8
9
10
function sayHi() {
  phrase = "Привет"; // (*)
 
  if (false) {
    var phrase;
  }
 
  alert(phrase);
}
sayHi();
Это все чисто джиэсные фишки (подъем var - конкретно)
0
10 / 10 / 1
Регистрация: 20.08.2016
Сообщений: 243
30.11.2025, 22:59  [ТС]
Я неправильно выразился. То, что такое условия я знаю. Я не понимаю, что именно должно быть истинно или ложно. Например, когда написано было бы в коде (другом)
JavaScript
1
if (a > 3)
то код б выполнился, если а было бы больше 3, а если true написано, в каких случаях он выполнится? Не знаю, как ещё объяснить. В каких случаях будет true а в каких false в коде ниже?

JavaScript
1
2
3
4
5
6
7
8
9
function sayHi() {
  if (true) {
    let phrase = "Привет";
    alert(phrase); // срабатывает и выводит "Привет"
  }
 
}
 
sayHi();
0
 Аватар для voraa
1243 / 1142 / 179
Регистрация: 21.01.2024
Сообщений: 5,242
30.11.2025, 23:06
Лучший ответ Сообщение было отмечено sozdatel как решение

Решение

Читайте учебник
Инструкция if(...) вычисляет условие в скобках и, если результат true, то выполняет блок кода.
Вычисляется выражение в скобках. Результат приводится к типу boolean. Если это true то код выполняется.
В вашем примере и вычислять ничего не надо. Там true - значит код выполняется всегда.
А if (false) - не выполняется никогда.
0
10 / 10 / 1
Регистрация: 20.08.2016
Сообщений: 243
30.11.2025, 23:10  [ТС]
Цитата Сообщение от voraa Посмотреть сообщение
Читайте учебник
Да читал. Только, видимо, плохо запоминается. Не знаю почему.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.11.2025, 23:10
Помогаю со студенческими работами здесь

Объяснить выполнение кода if (!isPrime(i) continue
Прошу людей с хорошим словарным запасом пояснить словами, что означает данная часть кода if...

Прогресс выполнения функции AJAX и время выполнения
Здравствуйте. Как ни странно не нашел ответа на решение своей проблемы. Есть функция, которая...

True и False jQuery
Как сделать так. Если переменная равна true, то... Иначе ... Вот что набросал, но не вышло...

маска для <div contenteditable="true"> через onFocus
У меня короче такая делема нужна масска ввода для вот такой строки &lt;td align=&quot;center&quot;&gt;&lt;div...

marker.hide=true по ID
здравствуйте. здесь http://suprofitweb.ru/google/map.php гуглкарта как вызвать маркер чтобы скрыть...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru