Например: можно ли заменить этот код:
let name = prompt('Введите имя', '');
let age = prompt('Введите свой возраст', '');
let p =(age < 18) ? `Ты не проходишь, ${name}`:
(age < 100) ? `Проходи, ${name}`: `Ты как бляtь смирительную рубашку снял? `;
alert(p);
На этот:
let name = prompt('Введите имя', '');
let age = prompt('Введите свой возраст', '');
if (age < 18) {
alert(`Ты не проходишь, ${name}`);
} else if (age > 18 & age <100){
alert(`Проходи, ${name}`);
} else {
alert(`Ты как бляtь смирительную рубашку снял? `);
}
JavaScript
Можно ли в javascript не использовать условный оператор '?' и полностью заменить его if`ами?
Не можно, а нужно...
Тернарный чаще всего используют там, где всего одно условие и два значения.
А цепочки из серии (...) ? (...) : (...) ? (...) : (...) ? (...) : (...) только ухудшает читаемость кода. Если и использовать его в длинной цепочке, то хотя бы так, напрмер:
let p =
( age < 18 ) ? `Ты не проходишь, ${name}` :
(age < 100) ? `Проходи, ${name}` :
`Ты как смирительную рубашку снял? `;
Тернарный чаще всего используют там, где всего одно условие и два значения.
А цепочки из серии (...) ? (...) : (...) ? (...) : (...) ? (...) : (...) только ухудшает читаемость кода. Если и использовать его в длинной цепочке, то хотя бы так, напрмер:
let p =
( age < 18 ) ? `Ты не проходишь, ${name}` :
(age < 100) ? `Проходи, ${name}` :
`Ты как смирительную рубашку снял? `;
Разумеется, можно. Фактически, тернарная операция - это синтаксический сахар, нужный только для того, чтобы кодер мог нажать на несколько клавиш меньше.
Например, в Go тернарную операцию выкинули - наряду с другими C-style излишествами.
age > 18 НЕ нужно:
if (age < 18) {
alert(`...`);
} else if (age <100) {
alert(`...`);
} else {
alert(`...`);
}
Например, в Go тернарную операцию выкинули - наряду с другими C-style излишествами.
age > 18 НЕ нужно:
if (age < 18) {
alert(`...`);
} else if (age <100) {
alert(`...`);
} else {
alert(`...`);
}
Полностью заменять его if'ами не надо. Но я его применяю только с одним условием. Тогда это удобно читать. Особенно если короткое условие и короткие значения. А писать весь код в одну длинную строку совершенно не улучшает читаемость кода.
Степан Днак
Тернарный оператор не обязательно писать в одну строку. Он отлично смотрится многострочным. Проблема только в том, что автоматические форматёры не так как форматируют как хотелось бы, когда несколько условий.
let p = age < 18 ? `Ты не проходишь, ${name}`
: age < 100 ? `Проходи, ${name}`
: `Ты как смирительную рубашку снял? `;
let p = age < 18 ? `Ты не проходишь, ${name}`
: age < 100 ? `Проходи, ${name}`
: `Ты как смирительную рубашку снял? `;
Можно. Но учитывай, что избегая части актуальных возможностей языка, ты сильно рискуешь вырасти в зашоренного деда, который обсирает все что не смог осилить сам.
Каждый инструмент имеет свое предназначение, и безусловно глупо забивать гвозди дрелью... как и сверлить молотком. То же самое и с синтаксисом / операторами. Использование только ифа - так же плохо, как неуместное использование тернарника.
Умение делать разумный выбор, использовать подходящие возможности для решения различных микрозадач - это один из ключевых навыков настоящего специалиста своего дела.
Каждый инструмент имеет свое предназначение, и безусловно глупо забивать гвозди дрелью... как и сверлить молотком. То же самое и с синтаксисом / операторами. Использование только ифа - так же плохо, как неуместное использование тернарника.
Умение делать разумный выбор, использовать подходящие возможности для решения различных микрозадач - это один из ключевых навыков настоящего специалиста своего дела.
Используй условные операторы
Похожие вопросы
- Поясните пожалуйста про условный оператор "?"
- Условные операторы и лочические операторы JS
- Когда лучше использовать регулярные выражения в Javascript, а когда не стоит?
- Логические операторы && и || JavaScript
- JavaScript максимальное число без Math.max только if else
- Почему простые текстовые игры не пишут в браузере на javascript, используя другие решения
- Чем можно заменить eval() в javascript? Нужно получить итоговое число в строке "2 * 10 + 5 / 4"
- Есть ли аналоги JavaScript?
- С чего начать учить JavaScript?
- Подскажите книги для изучения javascript? Хочу начать изучать веб программирование javascript подойтет для начала?
let p = age < 18 ? `Ты не проходишь, ${name}`
: age < 100 ? `Проходи, ${name}`
: `Ты как смирительную рубашку снял? `;
К сожалению, автоматические форматеры иногда портят такой стиль, пытаясь отразить вложенность.